标签: azure-webjobs

使用PowerShell创建计划的Azure WebJob

我正在尝试创建一个Azure WebJob来发送BrokeredMessage到Azure ServiceBus主题,创建和发送消息的实际行为是微不足道的,但是我一直无法找到自动创建Scheduled WebJob的方法.

自动化工作流程应如下工作:

  1. 创建一个新的Azure网站[完成]
  2. 创建一个新的触发Azure WebJob上传PS1文件[完成]
  3. 创建新的Azure Scheduler作业集[已验证的概念]
  4. 创建一个触发WebJob的新Azure Scheduler作业

Azure管理门户为此功能提供了一个很好的UI,它在所选的WebSite,Azure Scheduler作业集合和Azure Scheduler作业中创建Azure WebJob:

屏幕截图:Azure管理门户中新计划的Web作业任务的第2步

似乎没有使用Azure Service Management PowerShell模块创建计划的Azure WebJob的类似机制.当然可以创建新的WebJobs,Azure Scheduler集合作业 - 但是我不知道Azure Scheduler发布到哪个URL或存储队列来安排Azure WebJobs.

powershell azure azure-web-sites azure-scheduler azure-webjobs

11
推荐指数
1
解决办法
1万
查看次数

由Azure中止的长时间运行的Web作业

我在Azure网站中有一个正在中止的Web作业.它的运行时间相当长,大约需要30分钟.它从Azure SQL数据库中提取大量数据,并基本上编译用于报告的数据.

查看输出日志,似乎Azure中止作业,在执行过程中没有任何警告.没有迹象表明原因.

有没有办法阻止Azure中止Web作业?

该网站托管在标准的天蓝色网站内.

谢谢

azure azure-webjobs

11
推荐指数
1
解决办法
4886
查看次数

与azure webjobs如何传递计划任务的参数

我正在创建一个dot net控制台应用程序,它将作为Azure webjob运行.它计划每小时运行一次.

我想知道如何在调用时将参数传递给作业?

azure azure-webjobs azure-webjobssdk

11
推荐指数
1
解决办法
9745
查看次数

用于会话的Azure WebJob ServiceBusTrigger

我知道可以从服务总线队列接收消息,如:

public static void ProcessQueueMessage([ServiceBusTrigger("inputqueue")] string message, TextWriter logger)
Run Code Online (Sandbox Code Playgroud)

但是还有一种通过触发属性接收会话的方法吗?像ServiceBusSessionTrigger这样的东西?

通常人们会接受这样的会话:

var session = queueClient.AcceptMessageSession();
Run Code Online (Sandbox Code Playgroud)

但我更喜欢WebJob SDK来处理一次可以处理多个会话的方式.

编辑: 似乎目前不支持此功能:请参阅github了解功能请求

c# azureservicebus azure-servicebus-queues azure-webjobs azure-webjobssdk

11
推荐指数
1
解决办法
1498
查看次数

如何在本地运行Azure WebJob

我想创建一个连续运行的webjob但首先我想尝试在本地运行它以进行调试.我正在使用Visual Studio 2015,我运行了azure存储模拟器(我可以在visual studio中运行azure webjobs的示例).当我运行它时,它在新的JobHost()行上失败.
例外:值不能为空.参数名称:方​​法

    static void Main()
    {
        var host = new JobHost();
        host.CallAsync(typeof(Functions).GetMethod("GetNextJob"));
        // The following code ensures that the WebJob will be running continuously
        host.RunAndBlock();
    }
    [NoAutomaticTriggerAttribute]
    public static async Task GetNextJob()
    {
        while(true)
        {
            try
            {
                var log = new Logger();
                log.WriteInfo("Getting next job to be run", 0, 0, "Brain");
                //Console.WriteLine("Getting new Job and putting to que");
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            await Task.Delay(TimeSpan.FromSeconds(5));
        }
    }
Run Code Online (Sandbox Code Playgroud)

我可以在本地运行连续运行的工作吗?

c# azure azure-webjobs

11
推荐指数
1
解决办法
2万
查看次数

使用VSO在同一个sln中部署azure网站和webjobs - 错误 - 只能有一个

我有一个网站和一个webjob项目在同一个sln:

  • Sritt(网站)
  • Sritt.Webjob

Sritttheres 属性中webjobs-list.json具有以下设置:

"WebJobs": [
    {
      "filePath": "../Sritt.WebJob/Sritt.WebJob.csproj"
    }
Run Code Online (Sandbox Code Playgroud)

我已经像这样配置了VSTS构建(使用新的构建系统):

Solution: **\*.sln    
MSBuild Args: /p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.stagingDirectory)"
Run Code Online (Sandbox Code Playgroud)

在VSTS中构建给我以下警告:

 C:\a\1\s\packages\Microsoft.Web.WebJobs.Publish.1.0.9\tools\webjobs.console.targets(149,5): warning : WebJob schedule for SrittWebJob will not be created. WebJob schedules can only be created when the publish destination is an Azure Website [C:\a\1\s\Sritt.WebJob\Sritt.WebJob.csproj]
Run Code Online (Sandbox Code Playgroud)

并出现以下错误:

packageFile= Find-Files -SearchPattern C:\a\1\a\**\*.zip
packageFile= C:\a\1\a\Sritt.WebJob.zip C:\a\1\a\Sritt.zip
Found more than one file to deploy with search pattern 'C:\a\1\a\**\*.zip'. There can be only one.  
Run Code Online (Sandbox Code Playgroud)

如何部署网站和webjob?我需要将它们分成不同的解决方案吗?

azure-web-sites azure-webjobs azure-devops azure-pipelines

11
推荐指数
1
解决办法
7725
查看次数

连续WebJob带定时器触发器

我在连续的Web作业中编写了以下函数:

public static void fun1([TimerTrigger("24:00:00", RunOnStartup = true, UseMonitor = true)] TimerInfo timerInfo, TextWriter log)
{//Code}

public static void fun2([TimerTrigger("00:01:00", RunOnStartup = true, UseMonitor = true)] TimerInfo timerInfo, TextWriter log)
{//code}
Run Code Online (Sandbox Code Playgroud)

其中,fun1没有被再次调用(在启动web作业后只调用一次),并且每个进程完成后,fun2将被调用1分钟触发器.

任何人都可以解释为什么?我做错了吗?

azure azure-webjobs

11
推荐指数
1
解决办法
7789
查看次数

在将.NET Core控制台应用程序部署到Azure WebJobs时加载hostpolicy.dll时出错

我已按照本教程将.NET Core控制台应用程序部署到Azure Web Service WebJob.

我的应用程序在本地运行没有任何问题(使用dotnet 1.0.0-preview2-003131)但是当我尝试从Azure控制台运行它时出现以下错误:

无法从[D:\ local\VirtualDirectory0\site\wwwroot\app_data\jobs\triggered\PopcornExportWebJob\hostpolicy.dll]加载dll,HRESULT:0x800700C1

从[D:\ local\VirtualDirectory0\site\wwwroot\app_data\jobs\triggered\PopcornExportWebJob]加载所需的库hostpolicy.dll时发生错误

Azure dotnet的版本是1.0.0-rc4-004771 ,hostpolicy.dll文件与我在本地使用的文件相同.事实上,当我从Azure下载部署的zip时,当我在本地运行它时,它工作正常.但它在Azure环境中失败了.

另外,这是我的project.json:

{
      "publishOptions": {
        "include": [
          "run.cmd"
        ]
      },
      "buildOptions": {
        "emitEntryPoint": true,
        "copyToOutput": "appsettings.json"
      },
      "copyright": "bbougot",
      "dependencies": {
        "FubarCoder.RestSharp.Portable.Core": "4.0.7",
        "FubarCoder.RestSharp.Portable.HttpClient": "4.0.7",
        "Microsoft.ApplicationInsights.AspNetCore": "2.0.0",
        "Microsoft.Extensions.Configuration": "1.1.0",
        "Microsoft.Extensions.Configuration.Json": "1.1.0",
        "Microsoft.Extensions.DependencyInjection": "1.1.0",
        "Microsoft.Extensions.Logging": "1.1.0",
        "Microsoft.Extensions.Logging.Console": "1.1.0",
        "Microsoft.NETCore.App": "1.1.0",
        "MongoDB.Driver": "2.4.2",
        "StructureMap.Microsoft.DependencyInjection": "1.3.0"
      },
      "description": "Popcorn Api Exporter",
      "frameworks": {
        "netcoreapp1.1": {
          "imports": [
            "portable-net45+win8"
          ]
        }
      },
      "runtimes": {
        "win10-x64": {}
      }, …
Run Code Online (Sandbox Code Playgroud)

.net c# azure azure-webjobs asp.net-core

11
推荐指数
2
解决办法
7118
查看次数

如何在Azure功能应用程序中为队列触发器配置队列名称

我正在Azure中创建一个功能应用程序,并希望使用队列触发器.我知道如何在设计时配置队列名称,例如:

[FunctionName("MyTestFunction")]
public static void Run([QueueTrigger("myqueue-items", Connection = "testdelete")]string myQueueItem, TraceWriter log)
Run Code Online (Sandbox Code Playgroud)

但是,我希望能够在配置文件中定义和引用它.我知道function.json(可能是这个),host.json和local.settings.json的存在,但我不知道如何在那里设置队列名称并在函数中引用它.

如果我部署在visual studio中创建的新创建的函数(使用新的15.3更新),我可以在部署后的function.json文件中看到以下内容(即使我在本地开发时该文件不存在):

  "bindings": [
    {
      "type": "queueTrigger",
      "queueName": "myqueue-items",
      "connection": "testdelete",
      "name": "myQueueItem"
    }
Run Code Online (Sandbox Code Playgroud)

我发现,如果我创建该文件,并将"queueName"更改为与实际函数中的值不匹配的内容,则遗憾的是它不会覆盖它(我猜这太容易了).

如何在函数QueueTrigger属性中引用function.json中的绑定?

据推测,无论解决方案是什么,我都可以使用毒物队列处理来做同样的事情吗?

我想这样做的原因是因为我需要部署完全相同函数的多个实例,但是将每个实例指向不同的队列(为了绕过最大内存限制).

谢谢.

azure azure-webjobs azure-functions

11
推荐指数
1
解决办法
3295
查看次数

从Azure中的WebJob访问SQL数据库

我打算使用WebJobs作为NServiceBus的轻量级替代品,但是想要首先验证可以从触发的WebJob处理程序中进行例行SQL Azure数据库查询吗?我的数据库访问将通过EntityFrameworks.

这个SO线程表明WebJobs不支持SQL数据库,但我希望这只是意味着SQL数据库不能用作WebJob处理程序的触发机制?

Azure Web作业 - 如何连接到Azure MS SQL数据库?

我没有找到发布SQL数据库查询的WebJob示例,但由于WebJob可以访问与主WebSite相同的应用程序配置,我假设可以使用数据库连接详细信息?

azure-webjobs azure-sql-database

10
推荐指数
1
解决办法
1万
查看次数