如何使用同一个工人让芹菜重试?

2024-02-07

我刚刚开始在 Django 项目中使用 celery,并且有点陷入这个特定问题:基本上,我需要将长期运行的任务分发给不同的工作人员。该任务实际上分为几个步骤,每个步骤都需要相当长的时间才能完成。因此,如果某个步骤失败,我希望 celery 使用同一工作人员重试此任务,以重用已完成步骤的结果。我知道芹菜使用路由将任务分发到某些服务器,但我找不到有关此特定问题的任何信息。我使用 RabbitMQ 作为我的经纪人。


您可以让每个 celeryd 实例从以工作线程的主机名命名的队列中使用:

celeryd -l info -n worker1.example.com  -Q celery,worker1.example.com

将主机名设置为worker1.example.com并将从同名队列以及默认队列(名为celery).

然后,要将任务定向给特定的工作人员,您可以使用:

task.apply_async(args, kwargs, queue="worker1.example.com")

类似于直接重试:

task.retry(queue="worker1.example.com")

或将重试定向到同一工作人员:

task.retry(queue=task.request.hostname)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用同一个工人让芹菜重试? 的相关文章

随机推荐

  • 基于 Numpy 时间的向量运算,其中前面元素的状态很重要 - for 循环合适吗?

    在状态很重要的情况下执行基于时间的计算时 numpy 数组提供什么功能 换句话说 序列中较早或较晚发生的事情很重要 考虑以下基于时间的向量 TIME np array 0 10 20 30 40 50 60 70 80 90 FLOW np
  • 为任意音频文件生成缩略图

    我想在最大尺寸为 180 180 像素的图像中表示音频文件 我想生成这个图像 以便它以某种方式给出音频文件的表示 将其想象为 SoundCloud 的波形 幅度图 我想知道你们中是否有人有这方面的东西 我一直在搜索一些 主要是 音频可视化
  • F#:可为 Null 支持

    在 F 中使用 Nullable 的正确方法是什么 目前我正在使用这个 但它看起来非常混乱 let test left Nullable
  • apache htaccess 使用别名重写

    我们正在更改我们的域名 这旨在适用于独立应用程序 在 Apache 虚拟主机文件中 DocumentRoot 是 var www website html 而不是此块中的 var www example html Alias apps de
  • 为什么我可以在没有参数的情况下初始化 UIView,但它的文档没有空的初始化程序?

    let view UIView 为什么当唯一记录的时候编译没有错误UIView初始化器是init frame CGRect 具体来说 我正在尝试编写一个继承自的新类UIView 但是这段代码会抛出一个错误 class SquadHorizo
  • 谷歌反向地理编码 - 如何捕捉到最近的完整邮政编码

    我正在使用 Google 的反向地理编码功能和地图 api v3 来检索纬度经度的邮政地址 当在地图上拖动标记时 这仅是英国应用程序 系统的一部分需要完整或接近完整的邮政编码才能正确处理 然而 反向地理编码器通常只返回邮政编码的一部分 例如
  • 如何使用 NAnt 修改源代码?

    我想在构建解决方案之前使用 NAnt 修改 h 文件中的字符串 h 文件中有一个宏 define SERVER ADDRESS www customserver net 我想在部署软件之前修改该字符串 以便通过在命令行中传递地址来为自定义地
  • 删除除 2 列外所有列均为 NA 的行[重复]

    这个问题在这里已经有答案了 我有一个data table 我想删除那些除某些 2 列之外的所有列均为 NA 的行 例如 我有一个 data table 像 gt ww2 Sepal Length Sepal Width Petal Leng
  • 合并多个 javascript 文件

    我读过 将多个 javascript 文件合并到一个文件中可以提高性能 这是真的吗 如果是这样 是否有一种简单且无错误的方法来合并它们 或者也许有一个自动执行此操作的在线工具 非常感谢 See 多个 javascript css 文件 最佳
  • Windows 上的 Qt5 部署

    我一直在研究如何将我的桌面应用程序从 Qt5 Creator 部署到一组 dll 和一个 exe 记录的过程似乎极其复杂 http qt project org doc qt 5 0 qtdoc deployment windows htm
  • 在 i18next 中转义特殊字符

    所以我有这个变量 它将包含类似 的内容 然后我有这个 var vocab mm responses positive lngs LANG target User tag amount r multiplier icon iconFile 这
  • 我如何设置 jQuery 日期选择器的年份范围:1900 到当前年份,或 1900 到 9999

    大家好 我用过Jquery Date picker这对我来说已经足够好了 但我有一个小问题 即我想设置Start year from 1900 and End year to Current Year or 9999 在脚本中我找到了这个y
  • 使用 WTForms 和 Flask 预填充编辑表单

    我可以使用 WTForms 和 Flask 向数据库添加新条目 并且也可以进行编辑 问题是我需要以编辑表单显示数据库中已存在的信息 我有以下代码 编辑帖子表单的类 class editPostForm Form postTitle Text
  • 尝试使用 Python 通过 API 访问数据时出错

    尝试使用 API 访问有关服务器存储的详细信息时出现错误 我想提取备份状态state在 JSON 中 storage access private backup rule backups backup license 0 part of p
  • 未定义方法 stringify!使用meta_search和active_admin gems时出错

    我正在使用 active admin gem 并且由于它需要 meta search gem 所以我想在管理页面之外提供搜索功能 当我向 Model search 方法提供字符串时 出现未定义的方法错误 根据meta search文档 这就
  • 如何在 Docker 中处理持久存储(例如数据库)

    人们如何处理 Docker 容器的持久存储 我目前正在使用这种方法 构建图像 例如对于 PostgreSQL 然后使用以下命令启动容器 docker run volumes from c0dbc34fd631 d app name post
  • .NET 中的“美国东部标准时间”与“东部标准时间”

    在列出所有Id的属性TimeZoneInfos 返回者TimeZoneInfo GetSystemTimeZones 出现两个版本的 EST 美国东部标准时间和东部标准时间 有什么不同 我还看到美国山地标准时间和山地标准时间 但我很确定这是
  • JDBC 程序中的 java.lang.ClassNotFoundException [重复]

    这个问题在这里已经有答案了 我正在 java SE 7 中制作一个简单的 JDBC 程序 但在编译程序后 它给出了 java lang ClassNotFoundException org postgreasql Driver 错误 我按照
  • Delphi快速加大整数?

    function AddNumStrings Str1 Str2 string string var i integer carryStr string worker integer workerStr s string begin Res
  • 如何使用同一个工人让芹菜重试?

    我刚刚开始在 Django 项目中使用 celery 并且有点陷入这个特定问题 基本上 我需要将长期运行的任务分发给不同的工作人员 该任务实际上分为几个步骤 每个步骤都需要相当长的时间才能完成 因此 如果某个步骤失败 我希望 celery