在 windows 服务和云端使用 WebJobs 和 WebJobs 扩展 nuget
Use WebJobs and WebJobs extensions nuget in windows service and on cloud
我们有一个应用程序 运行 作为我们正在迁移到 Azure 的 windows 服务。 windows 服务 运行 持续运行并在内部使用 Quartz 调度程序库来触发配置有 cron 表达式的不同作业。
Webjobs 看起来很适合在云中托管此应用程序,但是 webjobs 已经具有 "TimerTrigger" 机制,与 quartz 相比,它还可以使用稍微不丰富但足够的 cron 集exrpession,理想情况下,我们应该从系统中完全删除 quartz,并且只需配置相同的 "jobs" 到 运行 关闭为 webjobs 配置的触发器。 Microsoft.Azure.WebJobs 和 Microsoft.Azure.WebJobs. 扩展提供了足够的功能来做到这一点。到目前为止一切顺利。
同时,迁移还有一段时间了,因为还有 50 个其他应用程序和设计更改必须解决。在此期间,该应用程序将 运行 作为 windows 服务在内部部署,并且在过渡期间,应该能够 运行 在内部部署和 Azure 中。
当我使用 webjobs 库时,我看到了可以完全删除 Quartz 库的经验证据,所有 "jobs" 仅使用来自 webjobs 包的 "TimerTrigger" 触发,使用 HostBuilder.ConfigureWebJobs 描述在 Microsoft.Azure.WebJobs 3.0.14 中使用,同时这是一个 .net Framework 4.7.2 应用程序(可以使用 webjobs .net 标准库)。观察结果是:
- 它按预期在 Azure webjobs 中工作
- 作为 Windows 服务,它在 prem 上也能正常工作,它 运行 没问题,所有触发器都从 webjobs 包中触发,并且可以很好地执行作业。
Webjobs 文档或 nuget 包的文档没有讨论本地 windows 服务托管计时器触发作业的包的使用,但它似乎工作正常。
我遇到了类似的讨论: 但要点是对本地和 Azure 使用两种不同的触发机制。我的测试表明,webjobs 库可用于两者。任意
任何人都可以建议仅使用 webjobs 包在 prem 和 Azure 上工作是否是一种可行的方法,或者是否存在我尚未遇到的陷阱 运行在 prem 上使用它?
以下是在本地 运行 时无法使用的东西:
1.It 如果工作负载很高,则无法使用 azure 的自动缩放功能。
2.You 无法查看 job history.
3.You需要自行管理硬件资源
如果这些东西对你来说不重要,你可以在本地继续使用它。
希望对您有所帮助。
我们有一个应用程序 运行 作为我们正在迁移到 Azure 的 windows 服务。 windows 服务 运行 持续运行并在内部使用 Quartz 调度程序库来触发配置有 cron 表达式的不同作业。
Webjobs 看起来很适合在云中托管此应用程序,但是 webjobs 已经具有 "TimerTrigger" 机制,与 quartz 相比,它还可以使用稍微不丰富但足够的 cron 集exrpession,理想情况下,我们应该从系统中完全删除 quartz,并且只需配置相同的 "jobs" 到 运行 关闭为 webjobs 配置的触发器。 Microsoft.Azure.WebJobs 和 Microsoft.Azure.WebJobs. 扩展提供了足够的功能来做到这一点。到目前为止一切顺利。
同时,迁移还有一段时间了,因为还有 50 个其他应用程序和设计更改必须解决。在此期间,该应用程序将 运行 作为 windows 服务在内部部署,并且在过渡期间,应该能够 运行 在内部部署和 Azure 中。
当我使用 webjobs 库时,我看到了可以完全删除 Quartz 库的经验证据,所有 "jobs" 仅使用来自 webjobs 包的 "TimerTrigger" 触发,使用 HostBuilder.ConfigureWebJobs 描述在 Microsoft.Azure.WebJobs 3.0.14 中使用,同时这是一个 .net Framework 4.7.2 应用程序(可以使用 webjobs .net 标准库)。观察结果是:
- 它按预期在 Azure webjobs 中工作
- 作为 Windows 服务,它在 prem 上也能正常工作,它 运行 没问题,所有触发器都从 webjobs 包中触发,并且可以很好地执行作业。
Webjobs 文档或 nuget 包的文档没有讨论本地 windows 服务托管计时器触发作业的包的使用,但它似乎工作正常。
我遇到了类似的讨论:
任何人都可以建议仅使用 webjobs 包在 prem 和 Azure 上工作是否是一种可行的方法,或者是否存在我尚未遇到的陷阱 运行在 prem 上使用它?
以下是在本地 运行 时无法使用的东西:
1.It 如果工作负载很高,则无法使用 azure 的自动缩放功能。
2.You 无法查看 job history.
3.You需要自行管理硬件资源
如果这些东西对你来说不重要,你可以在本地继续使用它。
希望对您有所帮助。