Azure中的后台任务

Dan*_*tle 1 asp.net scheduled-tasks azure

我想简化在Azure中创建后台任务的人.

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

Azure在后台任务方面面临着类似的问题,简单的任务很容易,但如果你想要更大的任务,你就会一直跳到工作者角色.然而,即使你使用这些方法,他们仍然有一些问题.

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

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

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

所以我有两个问题:

  1. 今天这样做的最佳方式是什么,有没有我错过的选择?

  2. Azure是否会在未来添加这样的服务?

Dan*_*tle 5

好消息..

介绍Windows Azure Web作业

  • 执行此操作的最佳方法是Azure Web作业,它们可以为Azure网站轻松完成预定的后台任务.

所以现在你可以拥有一个PaaS网站和后台服务,甚至不用看工人或角色!