说我有这个:
第1步:一个由计时器触发的天蓝色的网络作业,该作业将创建1000条消息,然后将它们放入队列中。
第2步:我还有一个以上消息队列触发的天蓝色webjob,此webjob将处理这些消息。
第3步:只有在第2步处理完所有消息后,才应触发最终的webjob。
好像azure Queue不支持排序,唯一的方法是使用ServiceBus。我想知道这真的是唯一的方法吗?
我在想的是这种过程:
将所有这些消息放入azure表中,其中一些guid作为主键,状态为0。
在完成第2步后,将此消息的状态更改为1(即完成),如果每条消息均已完成,则将触发第3步。
它将起作用吗?也许有一些nuget软件包可以用来实现我想要的?
答案 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步已经为空。
希望我的回答可以为您提供帮助。