微软关于队列的文档在哪里触发了 Azure WebJob 的 运行 连续不断而没有超时和中止?
Where is Microsoft's documentation on queue triggered Azure WebJob's that run continuously without timing out and aborting?
我正在尝试了解要在队列上触发的 Azure WebJob 设置应该如何在云中连续 运行 而不会因超时而中止。
在队列上触发 Web 作业的想法是它会 运行 连续,然后当新项目添加到队列时将触发您的函数。
它在现实中的工作方式是,如果当前没有任何东西正在执行,并且在 120 秒的时间段内(这是可配置的)没有任何东西被添加到队列中,你的网络作业将完全中止并且它将停止监听项目被添加到队列中。需要干预才能重新启动它。
Microsoft 提供了一些有用但相当过时的 Web 作业文档,它描绘了如何在 C# 中创建它的美好画面。
(是的,我在应用服务上启用了"Always On")
我可以将时间段配置为 2 小时、24 小时等,但它不是防弹的。 Microsoft 对触发 Web 作业 运行 而不会闲置和中止的实际建议是什么?
实际的 Always On Web 服务器不需要在空闲后重新启动服务主机。我对网络工作的期望不亚于此。
有人请告诉我微软对此有何指导?如果它不存在,请告诉我为什么他们在没有任何真正好的实施模式指导的情况下广播功能。
我的解决方案是 通过 .zip 文件将 azure webjobs 部署为连续类型。而且它没有这样的问题。
首先创建一个.net core控制台项目,并安装所有必要的nuget包->在Function.cs->添加appsettings.json中编写您的队列触发函数,将您的存储连接字符串放入其中(注意你还需要右击 appsettings.json -> select 属性 -> 将 "Copy to Output Directory" 设置为 "copy if newer")。
然后我发布项目 -> 在 visual studio 中,右击你的项目 -> select 发布 -> 在新的 window, select 文件夹中,还有选择路径(可以保留默认路径),然后点击发布按钮:
发布完成后,您可以进入您在上面步骤中定义的路径(默认路径如下:webjob222\bin\Release\netcoreapp2.1\publish
)
创建一个 run.cmd 文件,然后将类似 dotnet your_webjob_name.dll
的内容写入 run.cmd -> 然后将此处的所有文件发送到一个 .zip 文件中。
导航到 Azure 门户 -> 你的网络应用程序 -> 在左侧边栏中,select webjobs -> 添加、上传 .zip 文件,并将类型设置为连续。
创建 webjobs 后,您可以进行测试。它在我这边工作正常,没有这样的错误(我让 webjobs 闲置了大约 45 分钟,然后添加了一个队列消息,它工作正常)。这是网络作业的日志:
我正在尝试了解要在队列上触发的 Azure WebJob 设置应该如何在云中连续 运行 而不会因超时而中止。
在队列上触发 Web 作业的想法是它会 运行 连续,然后当新项目添加到队列时将触发您的函数。
它在现实中的工作方式是,如果当前没有任何东西正在执行,并且在 120 秒的时间段内(这是可配置的)没有任何东西被添加到队列中,你的网络作业将完全中止并且它将停止监听项目被添加到队列中。需要干预才能重新启动它。
Microsoft 提供了一些有用但相当过时的 Web 作业文档,它描绘了如何在 C# 中创建它的美好画面。
(是的,我在应用服务上启用了"Always On")
我可以将时间段配置为 2 小时、24 小时等,但它不是防弹的。 Microsoft 对触发 Web 作业 运行 而不会闲置和中止的实际建议是什么?
实际的 Always On Web 服务器不需要在空闲后重新启动服务主机。我对网络工作的期望不亚于此。
有人请告诉我微软对此有何指导?如果它不存在,请告诉我为什么他们在没有任何真正好的实施模式指导的情况下广播功能。
我的解决方案是 通过 .zip 文件将 azure webjobs 部署为连续类型。而且它没有这样的问题。
首先创建一个.net core控制台项目,并安装所有必要的nuget包->在Function.cs->添加appsettings.json中编写您的队列触发函数,将您的存储连接字符串放入其中(注意你还需要右击 appsettings.json -> select 属性 -> 将 "Copy to Output Directory" 设置为 "copy if newer")。
然后我发布项目 -> 在 visual studio 中,右击你的项目 -> select 发布 -> 在新的 window, select 文件夹中,还有选择路径(可以保留默认路径),然后点击发布按钮:
发布完成后,您可以进入您在上面步骤中定义的路径(默认路径如下:webjob222\bin\Release\netcoreapp2.1\publish
)
创建一个 run.cmd 文件,然后将类似 dotnet your_webjob_name.dll
的内容写入 run.cmd -> 然后将此处的所有文件发送到一个 .zip 文件中。
导航到 Azure 门户 -> 你的网络应用程序 -> 在左侧边栏中,select webjobs -> 添加、上传 .zip 文件,并将类型设置为连续。
创建 webjobs 后,您可以进行测试。它在我这边工作正常,没有这样的错误(我让 webjobs 闲置了大约 45 分钟,然后添加了一个队列消息,它工作正常)。这是网络作业的日志: