【发布时间】:2017-03-21 03:39:02
【问题描述】:
我有一个 MVC 网站、一个存储队列和一个 WebJob。用户可以通过单击网页上的按钮来请求生成一组报告。这会将消息插入存储队列。过去,WebJob 连续运行并很好地处理这些请求。但是报告的需求和规模已经增长到 WebJob 正在减慢 Web 应用程序的速度。我仍想将请求消息放在队列中,但将所有请求的处理延迟到晚上,此时网络应用程序大部分时间都处于空闲状态。这将允许我继续使用 WebJob 代码和 QueueTrigger 功能,而不必通过转移到专用的 Worker Role 等来浪费资源。报告不需要立即生成,因此延迟是可以接受的。
我没有看到设置处理时间窗口的内置方法。我发现的唯一东西是用于启动和停止 WebJobs(Start-AzureWebsiteJob / Stop-AzureWebsiteJob)的 powershell cmdlet。所以我想我可以创建一个计划的 powershell 作业,它在午夜运行,启动 webjob,让它运行,然后在凌晨再次运行并停止它。
有没有人知道比这更好的选择?还有什么我可能找不到的更“官方”的吗?
【问题讨论】:
标签: powershell azure azure-webjobs azure-queues