【问题标题】:Best way to repeatedly poll a list to see which a job is complete重复轮询列表以查看完成的作业的最佳方法
【发布时间】:2019-10-26 02:41:43
【问题描述】:

我们有一个返回jobID 的服务,其状态为已排队、正在运行或已完成。

是否有一个库或框架可以让我们将新的jobIDs 添加到队列并轮询jobIDs 的集合以查看哪些处于COMPLETED 状态。 然后从队列中弹出jobID

Celery 或 RedisQueue 似乎很有用,但它们一直在后台运行,这并不理想。 有没有更简单、更轻量级的解决方案,我可以插入并使用?

【问题讨论】:

  • 简单地定期轮询 jobID 怎么样?
  • 我也是这么想的,用一个redis列表存储所有的id,用python写一个poll函数。这似乎是一项微不足道的任务,所以想知道是否有一个维护良好的库可以做到这一点。

标签: python redis queue celery


【解决方案1】:

Redis LIST 提供阻塞操作。你可以自己轻松实现这样的逻辑。

BLPOPBRPOP 可以接收与参数一样多的列表,它会返回一个弹出的项目或阻塞客户端并等待一个项目被推送(或直到您选择的超时)。 BRPOPLPUSH 可以将一个元素移动到不同的列表中,但它只能监控一个列表。

【讨论】:

    猜你喜欢
    • 2015-11-11
    • 2018-05-19
    • 1970-01-01
    • 1970-01-01
    • 2018-03-13
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多