1

我想简化每个人在 Azure 中创建后台任务。

在 asp.net 应用程序中,后台任务一直很困难。对于简单的场景,您可以定期调用 URL 或启动后台线程。这两种选择都有问题,而且都远非理想。例如,在调用 URL 时,请求可以运行的时间量有限制,它会破坏请求与工作单元的关联,并且您需要将外部组件作为应用程序的一部分进行管理。对于后台线程,它稍微好一点,但 IIS 仍然是请求驱动的服务,并且在执行重复的后台任务时存在危险. 目前正在开展工作以在 IIS 中本地支持后台任务,但这仍处于遥远的未来。今天推荐的方法是使用 Windows 服务,这很好,因为它不是 PAAS,没有理由不使用整个服务器。

Azure 在后台任务方面面临着类似的问题,简单的任务很容易,但如果你想要更大的任务,你可以直接跳到 Worker 角色。但是,即使您确实使用了这些方法,它们仍然存在一些问题。

可以使用 Azure 移动服务任务计划运行简单的任务,但即使是那些也有一些问题。例如当任务长时间运行时。这也意味着您的主应用程序中有一半的任务逻辑,一半以脚本的形式来管理其余的工作。我想要一个集中在一个地方的后台服务。

工人角色在大多数情况下都过于重量级,坦率地说,它们通常是矫枉过正的。当我更愿意通过网站和服务共享单个虚拟机时,它们需要一个完整的专用虚拟机。然后,如果我需要,以后可以独立扩展它们。

我认为天蓝色需要第三种选择。使用可在共享或保留/标准环境中运行的 PAAS 部署服务的能力。这应该与当前的 Azure 网站完全一样,因为它可以在共享模式下运行,也可以在保留的 VM 上与我在 Azure 中托管的其他网站一起运行。然后,该服务和我的网站可以在一个虚拟机中运行,以实现具有成本效益的阶段性或跨多个我想要的专用虚拟机。

所以我有两个问题:

  1. 今天最好的方法是什么,有没有我错过的选择?

  2. Azure 将来会添加这样的服务吗?

4

2 回答 2

5

好消息..

介绍 Windows Azure Web 作业

  • 最好的方法是 Azure Web Jobs,它们使 Azure 网站的计划后台任务变得轻而易举。

因此,现在您可以拥有一个 PaaS 网站和后台服务,甚至无需查看 Workers 或 Roles!

于 2014-01-23T02:29:32.447 回答
0

几个选项供您选择:

http://www.voiceoftech.com/swhitley/index.php/2011/07/windows-azure-task-scheduler/ http://www.bondigeek.com/blog/2011/03/25/runninginstalling-a- windows-service-in-an-azure-web-role/

它们都利用启动任务来设置计划任务或 Windows 服务。这些仅适用于云服务,不适用于 Windows Azure 网站。据我所知,目前没有使用 WAWS 执行这些操作的方法。

至于要求将其添加到 WAWS 或云服务产品中,我建议在此处发布:http ://www.mygreatwindowsazureidea.com/forums/34192-windows-azure-feature-voting

于 2013-07-19T10:15:52.950 回答