其他webjobs完成后我可以运行azure webjob吗

时间:2019-01-07 15:38:53

标签: azure-webjobs azure-webjobssdk

说我有这个:

第1步:一个由计时器触发的天蓝色的网络作业,该作业将创建1000条消息,然后将它们放入队列中。

第2步:我还有一个以上消息队列触发的天蓝色webjob,此webjob将处理这些消息。

第3步:只有在第2步处理完所有消息后,才应触发最终的webjob。

好像azure Queue不支持排序,唯一的方法是使用ServiceBus。我想知道这真的是唯一的方法吗?

我在想的是这种过程:

  1. 将所有这些消息放入azure表中,其中一些guid作为主键,状态为0。

  2. 在完成第2步后,将此消息的状态更改为1(即完成),如果每条消息均已完成,则将触发第3步。

它将起作用吗?也许有一些nuget软件包可以用来实现我想要的?

1 个答案:

答案 0 :(得分:0)

我认为最简单的方法是将Azure Logic App和Azure Function相结合。

Logic App是一个自动化的可扩展工作流,您可以使用Timer,HTTP请求等触发它。Azure功能是一种无服务器计算服务,使您可以按需运行代码,而不必显式设置或管理基础结构。 / p>

Logic App支持使用Function添加代码,就像Function的use一样,与WebJob相似。因此,我认为您可以创建具有三个功能的Logic App,它们将一个接一个地运行。

对于WebJob,是的,QueueTrigger不支持排序。您提到的服务总线,确实满足您的 FIFO 功能的一些要求。但是,您需要确保在第1步之后触发第3步,因为在创建队列之前,该队列中的第3步已经为空。

希望我的回答可以为您提供帮助。