Celery 任务可以在重启后继续存在吗?

2023-11-22

我需要构建一个处理两种类型任务的系统。一种类型可以创建更多其自身或另一种类型的任务。工作人员数量很少(2-3),并且只有一名主机。最重要的要求是系统应该优雅地处理重新启动:即重新启动时,正在进行的任务应该从头开始,并且工作人员应该选择重新启动之前排队的任务。 看看 Celery,它似乎适合这个用例。但是,我有几个问题:

1)Celery 是否能够按照描述处理整个系统的重启? (Celery+workers+broker,一切重启,彻底断电)。

2)最适合这种情况的经纪商是什么?我更喜欢 SQLAlchemy + SQLite,因为它更“自包含”,但如果 R​​abbitMQ 是正确的选择,考虑到优雅地处理完全重启的要求,那么我可以选择它。


1)Celery 是否能够按照描述处理整个系统的重启? (Celery+workers+broker,一切重启,彻底断电)。

是的,当您在 RabbitMQ 上创建自己的队列时(执着的 队列)即使在服务器重新启动后,任务也会是 恢复并将由 Celery 执行。

2)最适合这种情况的经纪商是什么?我更喜欢 SQLAlchemy + SQLite,因为它更“自包含”,但如果 R​​abbitMQ 是正确的选择,考虑到优雅地处理完全重启的要求,那么我可以选择它。

使用 RabbitMQ。我们在生产中使用 RabbitMQ + Celery。所以我会 建议您使用 RabbitMQ 作为代理。

Celery + RabbitMQ 最佳实践

消息可靠性

Notes :

  1. 使用更多队列(即不仅仅是默认队列)
  2. 使用优先工作人员
  3. 使用 Celery 的错误处理机制
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Celery 任务可以在重启后继续存在吗? 的相关文章

随机推荐

  • mypy 列表中对象继承的问题

    Python 3 6 5 和 mypy 0 600 我写了代码 from typing import List class Animal pass class Dog Animal def init self gt None super d
  • 如何用css3绘制梯形/梯形?

    当你进入页面时http m google com使用 Mobile Safari 您将在页面顶部看到漂亮的栏 我想画一些像这样的梯形 美国 梯形 但我不知道怎么画 我应该使用 css3 3d 变换吗 如果您有好的方法来实现它请告诉我 由于这
  • 如何将任意文件的依赖项添加到 T4 模板?

    我有一个 T4 模板 可以从 xml 文件生成类 如何在 xml 文件和模板文件之间添加依赖关系 以便在修改 xml 文件时自动重新运行模板 而无需从上下文菜单中选择 运行自定义工具 我不相信 T4 支持基于外部依赖项的自动模板转换 我同意
  • Linq 2 SQL - 通用 where 子句

    有没有办法做到这一点 public T GetItemById int id Table
  • 使用 Youtube Api v3 和 oauth2 将视频上传到我的 Youtube 频道,无需用户身份验证

    我的任务目标是创建一个控制台脚本 它将我自己网站上最近上传的视频插入到我自己的 Youtube 频道中 我想使用服务器到服务器的身份验证 但 YoutubeApi 现在不支持这种身份验证方式 所以我的问题是 如何在没有用户帮助的情况下使用
  • Xcode 6 / Beta 4:不支持将桥接标头与框架目标一起使用

    我刚刚升级到 Xcode 6 Beta 4 并拥有一个为 Beta 2 中的实时视图创建的框架 由于另一个 swiftbug 我需要使用一些 Obj C 代码 但升级时 我收到以下错误 错误 不支持将桥接标头与框架目标一起使用 我没有在发行
  • 连接具有相同 id 的 pandas DataFrame 行

    假设我有一个 pandas DataFrame 例如 A B id 0 1 1 0 1 2 1 0 2 3 2 1 3 0 2 1 假设我想合并具有相同 id 的行 以便将行中的其他元素放在一个列表中 这样上面的数据框将变为 A B id
  • AngularJS 在两个选择列表之间移动项目

    我正在尝试使用下面的代码在两个选择列表之间移动项目 但是项目没有从 availableClients 列表移动到 selectedClients 列表 所以有人可以检查下面的代码并让我知道我在这里缺少什么吗 谢谢 div div div d
  • 在同一服务器上运行多个 Django Celery 网站

    我使用 apache2 虚拟服务器在同一服务器上运行多个 Django apache wsgi 网站 我想使用 celery 但是如果我为多个网站启动 celeryd 所有网站都将使用我启动的最后一个 celeryd 实例的配置 日志 数据
  • 为什么引发 NSException 不会导致我的应用程序崩溃?

    问题 我正在编写一个 Cocoa 应用程序 我想引发异常 从而导致应用程序崩溃 我的应用程序委托中有以下几行 NSException raise NSInternalInconsistencyException format This sh
  • Google 翻译 API v2 - (403) 访问未配置

    我在通过 Google 控制台 API 使用 Google 翻译时遇到问题 当我从本地计算机运行测试时 它运行得很好 但是当我尝试在远程测试虚拟服务器上运行它时 它返回上面的 403 我在控制台 API 访问中通过服务器密钥使用简单 API
  • prolog,在元组列表中查找列表元素

    我正在尝试用 Prolog 解决一个新程序 但我被卡住了 不知道如何继续 我必须做一个有 3 个参数的谓词 第一个是元素列表 第二个是元素列表是元组列表 如果元组的第一个元素与第一个参数列表的元素匹配 则第三个必须是返回的包含元组的第二个元
  • __scrt_common_main_seh 是什么/在哪里?

    我的程序中的第三方库正在尝试调用 scrt common main seh通过微软库msvcrt lib 但由某些未知库定义 因此会出现链接器错误 我不知道这个函数应该做什么或者它是在哪里定义的 我在网上查找了这个函数 但除了链接器错误的一
  • 突出显示 ggplot2 中感兴趣的区域

    在普通绘图中 可以使用polygon调用panel first论证plot突出显示背景区域 是否可以做同样的事情ggplot2 可以在保留网格线的同时完成吗 eg plot hp and wt for mtcars data highlig
  • JavaFX:循环之间的旋转动画延迟

    我使用以下代码为基于 RotatedTranstion 的 ImageView 创建了动画 ImageView icon ImageCache getImage refresh png RotateTransition rotateTran
  • 订阅 Angular 2 HTML 元素中的可观察对象

    我有一个可观察的生产Users有一个isLoading属性 这样就可以产生预期的结果 user async isLoading 我希望能够使用这个isLoadingHTML 属性中的属性 如下所示
  • 比 <__main__.MyClass 实例位于 0x1624710> 更漂亮的东西

    这是我的课程 尽可能简单 class MyClass def init self id self id id def str self return MyClass d self id 当我打印 MyClass 的对象时 我得到这个漂亮的字
  • 如何使用 javascript 或 jquery 从字符串中提取 html 标签的内容? [复制]

    这个问题在这里已经有答案了 也许这是非常基本的 但我很困惑 我有一个简单的 html 页面 其中包含许多部分 div 我有一个包含 javascript 中的 html 标签的字符串 代码如下
  • 如何在Windows中编写Unix行尾字符?

    如何使用 Python 在 Windows 上 写入文件并使用 Unix 行尾字符 例如做时 f open file txt w f write hello n f close Python自动替换 n with r n 现代方式 使用 n
  • Celery 任务可以在重启后继续存在吗?

    我需要构建一个处理两种类型任务的系统 一种类型可以创建更多其自身或另一种类型的任务 工作人员数量很少 2 3 并且只有一名主机 最重要的要求是系统应该优雅地处理重新启动 即重新启动时 正在进行的任务应该从头开始 并且工作人员应该选择重新启动