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

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(使用前将#替换为@)

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

  • 分类报告 - 精度和 F 分数定义不明确

    我从 sklearn metrics 导入了classification report 当我输入我的np arrays作为参数我收到以下错误 usr local lib python3 6 dist packages sklearn met
  • 反转 Python 整数的位

    给定一个十进制整数 例如 65 如何反转 Python 中的底层位 即以下操作 65 01000001 10000010 130 看来这个任务可以分为三步 将十进制整数转换为二进制表示形式 反转位 转换回十进制 第 2 步和第 3 步看起来
  • Daphne Django 文件上传大小限制

    我使用 Daphne 进行套接字和 http 连接 我正在运行 4 个工作容器 并且现在在 docker 容器中本地运行所有内容 如果我尝试上传 400MB 的文件 我的 daphne 服务器会失败 它适用于最大 15MB 的小文件 我的
  • Python:os.remove 不起作用

    为什么不是os remove string 为我工作 我的代码写如下 try os remove a output current time trmv successful message message n output message
  • 我应该使用 Pylons 还是 Pyramid?

    我本来打算从 Django 迁移到 Pylons 但后来我遇到了 Pyramid 塔架和金字塔有什么区别 我读了一些文字塔书 http pylonsbook com 目前涵盖 Pylons 0 9 7 并且想知道它是否是 Pylons 和
  • 在 opencv 中一次性将旋转和平移结合起来

    我有一段用于旋转和平移图像的代码 Point2f pt 0 in rows double angle atan trans c trans b 180 M PI Mat r getRotationMatrix2D pt angle 1 0
  • 字符串中数字的连续相加

    我是一名正在学习 python 的新程序员 并且在如何完成此任务方面遇到了困难 所以本质上我有一个从文件导入的数字字符串需要读取 并且需要将第一个数字的总和添加到第二个数字并将其转换为正确的 ascii 字符 因此 例如 如果我正在读取字符
  • Django 视图集没有属性“get_extra_actions”

    我第一次使用 Django 我正在尝试构建一个 API 我正在遵循一些教程和示例 它工作正常 但在安装所有要求和项目后 我现在正在 Raspberry Pi 中运行该项目失败并出现以下错误 Performing system checks
  • IndexError:布尔索引与维度 0 上的索引数组不匹配

    在我将 Numpy 更新到 1 13 1 之前 我的代码工作正常 现在我收到以下错误 IndexError boolean index did not match indexed array along dimension 0 dimens
  • 代码终止后保持 matplotlib / pyplot 窗口打开

    我希望 python 绘制一个图 在不阻塞控制流的情况下显示它 并在代码退出后使图保持打开状态 这可能吗 这个以及相关的主题存在于许多其他线程中 见下文 但我无法让情节保持开放且非阻塞 例如 如果我使用pyplot ion before p
  • 需要Python字长函数示例

    我的家庭作业有点困难 我本来应该编写一个函数 limitWords 将输入限制为 20 个单词 如果输入超过 20 个单词 则将输入截断为仅 20 个单词 我使用 len text split 作为计算单词的方法 因此 20 个或更少的部分
  • 使用 python3 查找表情符号的宽度

    我尝试使用 python 中的模式打印字母 A def printA length height symbol a for i in range length for i in range height for i in range hei
  • 使用 python 聚合 elasticsearch-dsl 中的字段

    有人可以告诉我如何编写 Python 语句来聚合 求和和计数 有关我的文档的内容吗 SCRIPT from datetime import datetime from elasticsearch dsl import DocType Str
  • 使用 Django 添加额外 \\ 字符的 JSON 编码

    我正在尝试创建一个函数 将包含消息和 Django 模型实例的字典转换为 JSON 然后我可以将其传回客户端 例如 我在 models py 中定义了模型 Test from django db import models class Te
  • setUp() 中的 if 条件忽略测试

    在unittest python库中 存在函数setUp and tearDown用于设置变量和其他测试前后的事情 如何运行或忽略 setUp 中条件的测试 您可以致电if cond self skipTest reason in setU
  • numpy 相关系数错误 - RuntimeWarning:true_divide 中遇到无效值

    当我尝试查找数据系列之间的相关性时 出现以下错误 gt gt gt i 1 1 1 gt gt gt j 2 2 2 gt gt gt import numpy as np gt gt gt np corrcoef i j usr loca
  • 如何在Python Selenium中获取WebElement的类名?

    我使用 Selenium WebDriver 来抓取从网页中获取的 用 JavaScript 编写的表格 我正在迭代表行列表 每行可能属于不同的类别 我想获取此类的名称 以便我可以为每一行选择适当的操作 table body table f
  • 在 Django(Python) 中向用户提供 Excel(xlsx) 文件下载

    我正在尝试使用 Django 创建和提供 Excel 文件 我有一个 jar 文件 它获取参数并根据参数生成 excel 文件 并且它可以正常工作 但是 当我尝试获取生成的文件并将其提供给用户下载时 文件损坏了 它的大小为 0kb 这是我用
  • Django Admin Media 前缀 URL 问题

    我有以下文件夹结构 src BAT templates admin base html src BAT media base css src BAT media admin media base css 设置 py MEDIA ROOT o
  • XGBoostError:[10:10:03] /workspace/src/tree/updater_gpu_hist.cu:1407:gpu_hist 中的异常:NCCL 失败

    PROJECT Nvidia 开发者项目 https developer nvidia com blog gradient boosting decision trees xgboost cuda 在 Google Colab 环境中 MY

随机推荐

  • 基于 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