Azure WebJobs - 在哪里托管?它们和 long-运行 进程一样安全吗?
Azure WebJobs - where hosted? Are they safe as long-running processes?
来自 Azure WebSite Always On and Meaning of "Always On" setting on Azure Web Site 我假设 Azure WebJobs 托管在 IIS 中并使用 IIS 资源(以及我们的网站资源)。
此外,在定价页面:http://azure.microsoft.com/en-us/pricing/details/websites/有一个声明:
Run custom executables and/or scripts on demand, on a schedule, or
continuously as a background task within your Websites instance.
Always On is required for continuous WebJobs execution. Azure
Scheduler Free or Standard is required for scheduled WebJobs.
因此我认为这是真的。事实上,Azure WebJobs 托管在 Azure 网站的 IIS 中。注意:WebJobs 可以是连续的和长的 运行ning.
然而,让我担心的是,执行长 运行ning processes/background 进程通常被视为反模式:
- Can I use threads to carry out long-running jobs on IIS?
- Concerns with long-running process on IIS
- ASP.NET long running task. Thread is being aborted exception
那么 Microsoft Azure 是否提出了一些似乎是反模式的东西?附加问题:将 运行 Quartz.NET 作为连续任务并进行 "free" 简单的后台任务调度是否是个好主意?
如果您要完成一项较长的 运行 任务,请将 运行 任务视为 'WebJob'。这是专门针对此类情况的。
在 AWS 上,您也可以使用 AWS lambda,
我会尽量分别回答你的两个问题。
1。 WebJobs 在哪里托管?
给定的 WebJob 存在于 Web 应用程序(或 Mobile/API 应用程序)中。每个站点都有一个 Kudu 实例 运行,它管理诸如部署、IIS 以及对我们来说很重要的 WebJobs 之类的东西。所以它托管在 Web 应用程序中,但不一定由 IIS 管理,它由管理 Web 应用程序 IIS 的同一事物管理。您可以在 Kudu GitHub.
中查看所有这些内容
2。只要 运行 个进程,它们就安全吗?
它们与任何长 运行 过程一样安全,因为它们不是单独的。如果您只是将控制台应用程序作为一项连续作业上传,并将其 运行 置于 while 循环中,则它可能会因任何原因随时崩溃。使用 'Always On',Kudu 将始终处于唤醒状态以再次启动它。
如果您想要一定程度的保证事情将被执行并且不会丢失,请尝试查看 WebJobs SDK。它实际上会跟踪 fail/success 作业并使用存储队列来跟踪历史记录,允许重试和正常模式来处理病毒消息等。
来自 Azure WebSite Always On and Meaning of "Always On" setting on Azure Web Site 我假设 Azure WebJobs 托管在 IIS 中并使用 IIS 资源(以及我们的网站资源)。
此外,在定价页面:http://azure.microsoft.com/en-us/pricing/details/websites/有一个声明:
Run custom executables and/or scripts on demand, on a schedule, or continuously as a background task within your Websites instance. Always On is required for continuous WebJobs execution. Azure Scheduler Free or Standard is required for scheduled WebJobs.
因此我认为这是真的。事实上,Azure WebJobs 托管在 Azure 网站的 IIS 中。注意:WebJobs 可以是连续的和长的 运行ning.
然而,让我担心的是,执行长 运行ning processes/background 进程通常被视为反模式:
- Can I use threads to carry out long-running jobs on IIS?
- Concerns with long-running process on IIS
- ASP.NET long running task. Thread is being aborted exception
那么 Microsoft Azure 是否提出了一些似乎是反模式的东西?附加问题:将 运行 Quartz.NET 作为连续任务并进行 "free" 简单的后台任务调度是否是个好主意?
如果您要完成一项较长的 运行 任务,请将 运行 任务视为 'WebJob'。这是专门针对此类情况的。 在 AWS 上,您也可以使用 AWS lambda,
我会尽量分别回答你的两个问题。
1。 WebJobs 在哪里托管?
给定的 WebJob 存在于 Web 应用程序(或 Mobile/API 应用程序)中。每个站点都有一个 Kudu 实例 运行,它管理诸如部署、IIS 以及对我们来说很重要的 WebJobs 之类的东西。所以它托管在 Web 应用程序中,但不一定由 IIS 管理,它由管理 Web 应用程序 IIS 的同一事物管理。您可以在 Kudu GitHub.
中查看所有这些内容2。只要 运行 个进程,它们就安全吗?
它们与任何长 运行 过程一样安全,因为它们不是单独的。如果您只是将控制台应用程序作为一项连续作业上传,并将其 运行 置于 while 循环中,则它可能会因任何原因随时崩溃。使用 'Always On',Kudu 将始终处于唤醒状态以再次启动它。
如果您想要一定程度的保证事情将被执行并且不会丢失,请尝试查看 WebJobs SDK。它实际上会跟踪 fail/success 作业并使用存储队列来跟踪历史记录,允许重试和正常模式来处理病毒消息等。