芹菜:动态队列



我正在为一个Shopify应用程序编写一个webhook处理器。该应用程序安装了许多生成webhook的商店。我还有一个微服务,它使用这些webhook并将它们作为芹菜任务进行处理。但问题是由于Shopify API的限制,我不能同时为一个商店运行传入的webhook。我正试图得到这样的流程:

  • 得到了webhook
  • 检查是否有工人已经在为该商店处理webhook
  • a。如果是,请将任务与商店名称一起放入队列中,并使其等待上一个任务结束
  • b。如果没有,请使用商店名称创建一个新队列,并在任何可用的工作人员上开始执行任务
  • 完成队列中的所有任务后-将其删除

也许这不是最好的解决方案,你可以给我一个更好的解决方案。基本思想是一个接一个地运行具有相同商店名称(或标签(的任务,并防止其他工作人员从队列中获取任务。但是它应该同时为不同的商店(标签(运行任务。

谢谢,活力。

我相信您可以通过为每个商店提供分布式锁来解决这个问题。点击此处了解更多信息:https://docs.celeryproject.org/en/stable/tutorials/task-cookbook.html#ensuring-一次只执行一个任务的

最新更新