celery相关内容

如何在运行时创建 celery 队列,以便发送到该队列的任务被工作人员拾取?

我正在使用 django 1.4、celery 3.0、rabbitmq 为了描述这个问题,我在一个系统中有许多内容网络,我想要一个队列来处理与每个网络相关的任务. 但是,当系统运行时,内容是动态创建的,因此我需要动态创建队列并让现有工作人员开始处理它们. 我已经尝试通过以下方式调度任务(其中内容是 django 模型实例): queue_name = 'content.{}' ..
发布时间:2022-01-21 12:25:06 其他开发

如何在没有线程或任务队列的情况下在 Flask 中运行后台作业

我正在使用 Flask-restplus 构建 REST API.我的一个端点获取从客户端上传的文件并运行一些分析.该作业最多使用 30 秒.我不希望这项工作阻止主进程.因此端点将立即返回 200 或 201 的响应,作业仍然可以运行.结果将保存到数据库中,稍后检索. 对于长期运行的工作,我似乎有两种选择. 线程 任务队列 线程相对简单.但问题是,Flask 应用程序的线程数是 ..
发布时间:2022-01-21 12:16:23 Python

使用 Celery 创建动态队列

这是我的场景: 当用户登录我的网站时,我为给定用户排队了一堆任务(通常每个任务需要 100 毫秒,每个用户有 100 多个任务).这些任务排队到默认的 Celery Queue 中,我有 100 名工作人员正在运行.当后端任务完成时,我使用 websockets 向用户显示实时进度.如果我只有 1 或 2 个活跃用户,生活就会很美好. 现在,如果我有几个并发用户登录到我的站点,后面的用 ..
发布时间:2022-01-21 12:12:08 Python

CentOS 的 init.d 芹菜脚本?

我正在编写一个使用 celery 的 Django 应用程序.到目前为止,我一直在 Ubuntu 上运行,但我正在尝试部署到 CentOS. Celery 为基于 Debian 的发行版提供了一个不错的 init.d 脚本,但它不适用于 CentOS 等基于 RedHat 的发行版,因为它使用 start-stop-daemon.有没有人有一个等效的 RedHat 使用相同的变量约定,所以我 ..
发布时间:2022-01-13 21:50:16 其他开发

具有多处理功能的 Celery 并行分布式任务

我有一个 CPU 密集型 Celery 任务.我想使用跨大量 EC2 实例的所有处理能力(核心)来更快地完成这项工作(具有多处理功能的 celery 并行分布式任务 - 我认为). 线程、多处理、分布式计算、分布式并行处理这些术语都是我的术语试图更好地理解. 示例任务: @app.task对于 list_of_millions_of_ids 中的项目:id = item # 在这里 ..
发布时间:2022-01-12 13:02:27 Python

删除 celery 中的 Task/PeriodicTask

如何删除 celery 中的常规 Task 或 PeriodicTask? 解决方案 您撤销任务:参见文档: Control.revoke(task_id, destination=None, terminate=False, signal='SIGTERM', **kwargs)告诉所有(或特定的)工作人员通过 id 撤销任务.如果一个任务被撤销,worker 将忽略该任务并且根本不执 ..
发布时间:2022-01-11 18:05:28 Python

RabbitMQ/Celery/Django 内存泄漏?

我最近接手了我公司正在进行的项目的另一部分,并发现我们的 RabbitMQ/Celery 设置中似乎存在内存泄漏. 我们的系统有 2Gb 的内存,在任何给定时间大约有 1.8Gb 可用.我们有多个任务处理大量数据并将它们添加到我们的数据库中. 当这些任务运行时,它们会消耗相当多的内存,很快我们的可用内存就会下降到 16Mb 到 300Mb 之间的任何地方.问题是,这些任务完成后,内存并 ..
发布时间:2022-01-11 18:04:34 其他开发

Celery 动态队列创建和路由

我正在尝试调用一个任务并为该任务创建一个队列,如果它不存在,则立即将调用的任务插入该队列.我有以下代码: @taskdef 问候(姓名):返回“你好 %s!"% 名称定义运行():结果 = greet.delay(args=['marc'], queue='greet.1',routing_key='greet.1')打印结果.ready() 然后我有一个自定义路由器: 类 MyRouter ..
发布时间:2022-01-11 17:59:16 Python

调用 celery 任务挂起延迟和 apply_async

我创建了一个具有以下目录结构的 celery 应用程序(如 celery 网站中给出的): 项目|-- 芹菜.py|-- 芹菜.pyc|-- __init__.py|-- __init__.pyc|-- 任务.py`--任务.pyc 以下是 celery.py 的内容 from __future__ import absolute_import从芹菜进口芹菜应用 = 芹菜('项目',经纪人= ..
发布时间:2022-01-11 17:58:58 Python

Django、RabbitMQ 和Celery - 为什么在我更新开发中的 Django 代码后,Celery 会运行旧版本的任务?

所以我有一个 Django 应用程序,它偶尔会向 Celery 发送一个任务以进行异步执行.我发现当我在开发中处理我的代码时,Django 开发服务器知道如何自动检测代码何时发生更改,然后重新启动服务器,以便我可以看到我的更改.但是,我的应用程序的 RabbitMQ/Celery 部分并没有注意到开发中的这些变化.如果我更改稍后将在 Celery 任务中运行的代码,Celery 仍将继续运行旧版本 ..
发布时间:2022-01-11 17:57:14 Python

使用主题交换运行多个 Celery 任务

我正在用 Celery 替换一些本地代码,但很难复制当前的行为.我想要的行为如下: 创建新用户时,应使用 user.created 路由键将消息发布到 tasks 交换. 此消息应触发两个 Celery 任务,即 send_user_activate_email 和 check_spam. 我尝试通过使用 ignore_result=True 参数定义 user_created 任务 ..
发布时间:2022-01-11 17:55:31 Python

Celery 3.0.1 中的框架错误

我最近从 2.3.0 升级到 Celery 3.0.1,所有任务都运行良好.很遗憾.我经常收到“框架错误"异常.我也在运行主管来重新启动线程,但由于这些线程从未真正被杀死,主管无法知道需要重新启动芹菜.有人见过这个吗? 2012-07-13 18:53:59,004: ERROR/MainProcess] 不可恢复的错误:异常('帧错误,收到 0x00 而预期 0xce',)回溯(最近一次通话最 ..
发布时间:2022-01-11 17:54:17 Python

如何找到 RabbitMQ URL?

Rabbit MQ URL 如下所示: BROKER_URL: "amqp://user:password@remote.server.com:port//vhost" 这个不清楚我们在哪里可以找到RabbitMQ的URL、登录名和密码当我们需要从远程工作人员(本地主机之外)访问时. 另外,如何在 Celery/RabbitMQ 中设置 RabbitMQ 的 IP 地址、登录名和密码 ..
发布时间:2022-01-11 17:53:40 其他开发

如何查看 RabbitMQ 中的排队任务?

我使用 RabbitMQ 作为我的消息代理,我的工作人员是 Celery 任务.我正在尝试诊断一个问题,即我将任务排入 RabbitMQ 但 Celery 没有接听. 有什么方法可以检查 RabbitMQ 中排队的任务是什么?我想查看它们入队的日期和时间、指定的任何 ETA、参数和任务名称. 我无法在文档中找到这些信息——也许我忽略了它——并且希望你们中的一些人可能知道检查任务队列的简 ..
发布时间:2022-01-11 17:53:03 Python

带有rabbitmq的芹菜创建结果多个队列

我已经用 RabbitMQ 安装了 Celery.问题是对于返回的每个结果,Celery 都会在 Rabbit 中创建,并在交换 celeryresults 中使用任务 ID 排队. 我仍然想要结果,但在 ONE 队列中. 我的芹菜配置: 从日期时间导入时间增量OKER_URL = 'amqp://'CELERY_RESULT_BACKEND = 'amqp'#CELERY_IGNO ..
发布时间:2022-01-11 17:52:39 其他开发