问题标签 [azure-webjobs-continuous]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1001 浏览

azure - Azure webjobs:在预定时间发送通知电子邮件?

我需要一些关于如何使用 azure webjobs 来满足这个要求的反馈。

我有一个要求,我们需要在预定时间发送通知电子邮件。通知的频率存储在数据库表中。表条目示例: 在此处输入图像描述

webjob 应该从 DB 表中读取配置并在配置的时间发送通知电子邮件(配置的时间是 DB 条目中提到的时间)。DB 表中将有多个条目,并且可以添加或修改新条目。上面的示例只有 2 个条目,可以有更多。

问题:

  1. 从数据库读取配置后,如何在一天中的特定时间让 webjob 触发电子邮件?
  2. 有没有更好的方法来使用任何其他天蓝色资源来实现此通知调度?
  3. 如何确保 webjob 成功发送电子邮件?
  4. 如果 webjob 发送电子邮件失败,是否有重试机制?

任何帮助,将不胜感激。

提前致谢。

0 投票
1 回答
2835 浏览

asp.net-core-2.1 - azure webjob- timerTrigger:获取当前执行上下文?

我写了一个带有 timerTrigger 的 azure webjob。静态方法每分钟调用一次,它必须发出 http POST 请求。我想在 timerTrigger 静态方法中访问 appSettings.json 文件。我怎样才能访问它?

我看到了 QueueTrigger 的静态方法将 ExecutionContext 和 TextWriter 作为参数的示例。请看下面的例子:

如何将类似的当前执行上下文和 TextWriter 记录器注入我的 timerTrigger 静态方法 - “TimerTick”?下面是我的 TimerTrigger 静态方法:

==================================================== ===================== 更新问题:

我将 TimerTrigger 的方法更新为:

使用 NameResolver 从配置文件中读取 %Job%。

当我尝试在 TriggerNotification 方法中传递当前执行上下文时,我收到以下错误: 在此处输入图像描述

我该如何解决这个问题?

Webjob 是使用 HostBuilder 配置的。下面是代码。我正在使用 Azure 网络作业 3.0.3 版。

}

0 投票
1 回答
1290 浏览

azure - Serilog:在 azure 中托管时,azure webjob 日志记录似乎不起作用?

我有 azure webjob sdk (v3.0.3) 应用程序,该应用程序已配置为使用 serilog 进行日志记录。当我在系统中本地运行应用程序时,日志似乎可以工作。下面是配置:

SetupConfiguration 的代码如下:

设置服务的代码:

日志记录设置如下:

在我的 TimerTrigger 方法中,我使用了记录器:

在 appSettings.json 中,serilog 配置如下:

当我在本地运行应用程序时,会创建文件夹“Log”和日志文件。但是当我发布 webjob 时,webjob 的“app_data”文件夹中没有创建“Log”文件夹或日志文件。谁能帮我弄清楚如何配置 serilog 以使其与 webjobs 一起使用?

以下是使用的 nuget 包: 在此处输入图像描述

0 投票
1 回答
109 浏览

c# - Azure WebJob 抛出 HttpRequestException

我在 Azure 上托管一个应用程序作为一个连续的 WebJob。该程序经常(大约每秒一次)通过创建 DocumentClient 实例来调用 CosmosDB 数据库(我使用 DocumentClient 函数 CreateDocumentQuery 和生成的 IEnumerable 上的 Linq Query 从我的数据库中检索对象)。当我在本地运行程序时,它的行为符合预期,没有任何问题。当我将程序发布为 Azure WebJob 并运行它时,我的日志表明正在抛出 HttpRequestException 和消息:

发送请求时出错。

此外,我得到以下堆栈跟踪:

在 System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) 在 System.Threading.Tasks.Task1.GetResultCore(Boolean waitCompletionNotification) 在 System.Threading.Tasks.Task1.get_Result() 在 Microsoft.Azure.Documents.Linq.DocumentQuery1 .d__31.MoveNext() at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable`1 source) at ...我的调用代码...

只有在我频繁使用 DocumentClient 并且仅在 WebJob 方面才会出现此问题。在本地运行等效负载不会影响我的应用程序。为什么我的 WebJob 中会出现此异常?值得注意的是,S1 和 P1V2 应用服务层都会出现此问题。

0 投票
1 回答
259 浏览

octopus-deploy - 如何使用 Octopus deploy 部署连续的 azure webjob

我正在尝试让 Azure 应用服务识别我的 Web 作业 - 意思是在应用服务的“Web 作业”下的门户中显示它。并且还按照 TimerTrigger 属性定义的时间表运行它。

它是一个 .NET Core 2.2 控制台应用程序,其中包含多个 Web 作业类。它运行的应用服务是一个单独的项目和网站。我可以从 Visual Studio 发布它,它在 Web 应用程序中的 Web Jobs 下显示为应有的样子。但是,如果我删除它并尝试从 Octopus 发布到同一个地方而不先进行 VS 2017 发布,它就不会出现。

我的问题是,在新环境中,当我使用 Octopus 部署 Web 作业文件时,不会创建 Web 作业,如下所述:

通过在我的 Octopus 包部署中设置物理路径:

App_Data\jobs\continuous\myjob

这与我从 Visual Studio 2017 发布时的路径相同。

与此问题相关,但似乎缺少一步,因为文件位于正确的位置,但 Web 作业未出现在门户中。

如何使用 Octopus 部署 azure webjob

是否有一些额外的设置或注册步骤来运行 Web 作业,或者应用服务是否应该在文件出现在正确位置时识别 Web 作业存在?重新启动应用程序服务没有帮助。

0 投票
1 回答
620 浏览

c# - WebJob 偶尔会抛出 System.Threading.Tasks.TaskCanceledException

我有一个连续的 WebJob,它执行一个队列触发的函数,它偶尔会抛出 System.Threading.Tasks.TaskCanceledException。

WebJobs SDK 版本:2.1.0

堆栈跟踪:

网络作业:

显然没有时间做任务。对于某些消息,这会失败一次。我错过了什么?

0 投票
2 回答
1195 浏览

azure - Microsoft.WindowsAzure.Storage.StorageException:'远程服务器返回错误:(400)错误请求

我使用Azure Webjobs ( .NET Framework )模板在 VS 2017 中创建了一个新项目。

在此处输入图像描述

之后,我在 App.config 文件中包含了 AzureWebJobsDashboard 和 AzureWebJobsStorage 的有效值。

运行示例后,我收到以下错误消息。

知道缺少什么吗?

在此处输入图像描述

0 投票
1 回答
959 浏览

azure-webjobs - 连续网络作业与为计划运行触发

我有一个需要定期运行的网络作业,但它与 cron 表达式连续而不是触发类型。尤其是在任何性能方面,它会有什么不同吗?非常感谢您对理解这一点的任何帮助

0 投票
1 回答
125 浏览

c# - 如何在 azure webjob 3.x sdk 中的触发方法中获取配置值

我有一个使用队列触发器的连续运行的网络作业。我需要一些在 app.config 文件中配置的数据,我使用

将数据设置为变量。但这一切都在 Azure webjobs 2.1 sdk 中。但是从 3.x 开始,我们只有 appsettings.json 文件。我如何从 json 文件中获取设置到触发器方法中

0 投票
1 回答
131 浏览

asp.net - 持续部署后 Azure 运行触发的 webjob 不会更新

我在 .NET Azure 网站上运行了一个 .NET 触发的网络作业。我使用 Azure DevOps 设置了持续部署。有没有办法自动将正在运行的触发网络作业更新到最新版本,即当我推送提交时?该网站在提交时自动重新部署,这很好,但不是 webjob。目前,似乎我必须删除门户中的 webjob,重新部署站点,然后再次手动触发门户中的 webjob。