在 dask 或 Dramatiq 中带有 (bind=True) 的芹菜?
Posted
技术标签:
【中文标题】在 dask 或 Dramatiq 中带有 (bind=True) 的芹菜?【英文标题】:Celery with (bind=True) in dask or dramatiq? 【发布时间】:2019-02-19 21:08:14 【问题描述】:我使用 celery 已经有一段时间了,但由于缺乏 Windows 支持,我正在寻找替代方案。
***竞争对手似乎是 dask 和 Dramatiq。我真正在寻找的是可以将 1000 个长时间运行的任务分配到 10 台机器上的东西。每个人都应该在完成任务后接下一个工作,并给出一个带有更新的回调(在 celery 中,这可以通过 @task(bind=True) 很好地实现,因为可以访问任务实例本身并且我可以发送状态返回给发送更新的实例)。
dramatiq 或 dask 中是否有类似的功能可用?任何建议将不胜感激。
【问题讨论】:
【参考方案1】:在 Dask 方面,您可能正在寻找期货接口:https://docs.dask.org/en/latest/futures.html
期货具有“已完成”、“待处理”或“错误”等基本状态,您可以随时查看。如果您想要更复杂的消息,那么您应该查看 Dask Queues、PubSub 或其他任务间通信机制,也可以从该文档页面获得。
【讨论】:
以上是关于在 dask 或 Dramatiq 中带有 (bind=True) 的芹菜?的主要内容,如果未能解决你的问题,请参考以下文章
在 for 循环中将 Python Dask 系列转换为列表或 Dask DataFrame