【问题标题】:Background Tasks in AzureAzure 中的后台任务
【发布时间】:2013-07-18 06:22:50
【问题描述】:

我想简化大家在 Azure 中创建后台任务。

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

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

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

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

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

所以我有两个问题:

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

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

【问题讨论】:

    标签: asp.net azure scheduled-tasks


    【解决方案1】:

    好消息..

    Introducing Windows Azure Web Jobs

    • 最好的方法是 Azure Web 作业,它们使 Azure 网站的预定后台任务变得轻而易举。

    所以现在您可以拥有一个单一的 PaaS 网站和后台服务,甚至无需查看工人或角色!

    【讨论】:

      【解决方案2】:

      几个选项供您选择:

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-30
        • 2017-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多