运行 同一 Azure WebJob 的多个实例并发来自单个 Web 应用程序
Run Many Instances Of Same Azure WebJob Concurrently From Single Web App
我创建了一个简单的 Azure Web 作业,它会从传入的网站抓取一些数据,对其进行解析并将其添加到数据库中。
它只是一个接受参数的简单控制台应用程序(.exe 文件)。并将其上传到 Azure 上的 Web 应用程序。
但是,我的印象是这个网络作业会根据需要多次启动和完成。因此,如果我一个接一个地向 webjob 发出 3 个命令,我将同时得到 3 个 webjob 实例 运行ning。
但是,它不起作用。我只能 运行ning 一次。其他两个命令失败。是否可以在单个 Web 应用程序中拥有一个 Web 作业并同时 运行 同时处理不同的相同 WebJob 也是 运行ning?
根据我的经验,触发的 WebJob 不能 运行 同时发生。
我的建议是不要手动触发作业,而是让它成为一个连续的 WebJob 来监听队列。然后发送一个队列消息,其中包含您想要的每个 运行 的参数。连续队列侦听作业可以 运行 并发。
您需要稍微修改一下作业。它必须 运行 作业主机而不是在启动时触发逻辑,并且您必须将逻辑移动到队列触发的函数。
使用 Azure WebJobs,您只能 运行 应用服务计划中每个主机的一个 Web 作业实例。
Is it possible to have a single webjob, in a single web app and have it run concurrently while the same webjob processing something different is also running?
是的,只要您将 ASP 扩展到所需的主机数量(相当于所需的并发网络作业数量)
最终,您应该查看 Azure 函数来处理此类工作负载。参见 this feedback request
我创建了一个简单的 Azure Web 作业,它会从传入的网站抓取一些数据,对其进行解析并将其添加到数据库中。
它只是一个接受参数的简单控制台应用程序(.exe 文件)。并将其上传到 Azure 上的 Web 应用程序。
但是,我的印象是这个网络作业会根据需要多次启动和完成。因此,如果我一个接一个地向 webjob 发出 3 个命令,我将同时得到 3 个 webjob 实例 运行ning。
但是,它不起作用。我只能 运行ning 一次。其他两个命令失败。是否可以在单个 Web 应用程序中拥有一个 Web 作业并同时 运行 同时处理不同的相同 WebJob 也是 运行ning?
根据我的经验,触发的 WebJob 不能 运行 同时发生。
我的建议是不要手动触发作业,而是让它成为一个连续的 WebJob 来监听队列。然后发送一个队列消息,其中包含您想要的每个 运行 的参数。连续队列侦听作业可以 运行 并发。
您需要稍微修改一下作业。它必须 运行 作业主机而不是在启动时触发逻辑,并且您必须将逻辑移动到队列触发的函数。
使用 Azure WebJobs,您只能 运行 应用服务计划中每个主机的一个 Web 作业实例。
Is it possible to have a single webjob, in a single web app and have it run concurrently while the same webjob processing something different is also running?
是的,只要您将 ASP 扩展到所需的主机数量(相当于所需的并发网络作业数量)
最终,您应该查看 Azure 函数来处理此类工作负载。参见 this feedback request