问题标签 [celery]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
928 浏览

python - 如何防止并发插入创建重复项?

我有一个如下所示的 SQLAlchemy 模型对象:

在两个单独的客户端进程中,运行此代码以创建具有唯一 task_id 的新实例;task_id 必须只有一个实例:

如何重写此代码,以便它以原子方式创建具有指定 ID 的任务?

0 投票
1 回答
1952 浏览

django - Django Celery beat 在开始时崩溃

我最近用 RabbitMQ 和 Celery 配置了一个新服务器。当我尝试在机器上启动 Celerybeat 时,它会启动几秒钟然后停止。我已授予日志文件正确的权限并将所有者更改为应用程序用户。我还检查了 celerybeat.log 文件,没有记录任何错误。

我尝试在项目文件夹中以这种方式启动它:

我得到了这个错误:

有人可以在这里为我指出正确的方向。

0 投票
2 回答
3162 浏览

django - django celery - 如何将 request.FILES['photo'] 发送到任务

我正在尝试通过以下方式将 request.FILES['photo'](从我的网站上传的文件)发送到 tCelery:

我收到一个泡菜错误,因为它无法序列化它。将文件发送到任务的方式是什么?

错误:“不能腌制 StringO 对象”谢谢。

0 投票
2 回答
4394 浏览

python - 测试是否仍在处理 celery 任务

如何测试任务(task_id)是否仍在celery中处理?我有以下情况:

  1. 在 Django 视图中启动任务
  2. 将 BaseAsyncResult 存储在会话中
  3. 关闭 celery 守护进程(硬),因此不再处理任务
  4. 检查任务是否“死亡”

有任何想法吗?是否可以查找 celery 正在处理的所有任务并检查我的任务是否仍然存在?

0 投票
4 回答
18695 浏览

python - 芹菜 - 最小化内存消耗

我们有大约 300 个 celeryd 进程在 Ubuntu 10.4 64-bit 下运行,每个进程在空闲时占用大约 19mb RES,大约 174mb VIRT,因此 - 对于所有进程来说,大约有 6GB 的 RAM 处于空闲状态。处于活动状态 - 进程占用高达 100mb 的 RES 和 ~300mb VIRT

每个进程都使用 minidom(xml 文件小于 500kb,结构简单)和 urllib。

问题是 - 我们如何减少 RAM 消耗 - 至少对于空闲的工人来说,可能一些 celery 或 python 选项可能会有所帮助?如何确定哪个部分占用内存最多?

UPD:那是航班搜索代理,一个机构/日期的一名工人。我们有 10 个代理,一个用户搜索 == 9 个日期,因此每个用户搜索我们有 10*9 个代理。

是否可以按需启动 celeryd 进程以避免空闲的工作人员(类似于 apache 上的 MaxSpareServers)?

UPD2:代理生命周期是 - 发送 HTTP 请求,等待响应 ~10-20 秒,解析 xml(花费少于 0.02 秒),将结果保存到 MySQL

0 投票
4 回答
8482 浏览

python - 使用 Django + Celery 更新 Haystack 搜索索引

在我的 Django 项目中,我使用的是 Celery。我将 crontab 中的命令切换为定期任务,它运行良好,但它只是在模型上调用一个方法。是否也可以通过定期任务更新我的 Haystack 索引?有人做过吗?

这是从 Haystack 文档更新索引的命令,但我不确定如何从任务中调用它。

0 投票
1 回答
1549 浏览

django - Django celery 给了我一个 (13, 'Permission Denied')

我在我的一个项目中使用 django celery 并且收到 (13, Permisison denied) 错误。

请参阅下面的回溯:

我认为它与权限有关。服务器的登录凭据很好,除此之外一切正常。

celeryd 守护程序在我提供的 rabbitmq 连接凭据下运行良好。

当我以 root 身份运行开发服务器时,它不会给我这个错误。我认为它可能与文件或套接字权限有关,但我不知道去哪里修复它。

0 投票
2 回答
7756 浏览

python - 如何安排每个月 1 日运行的 Celery 任务?

如何安排每个月 1 日运行的

0 投票
1 回答
1449 浏览

python - 无法使用 Celery 安排和重新安排帖子

我正在开发一个 Django 博客,我需要能够安排帖子在以后发布。Celery 非常适合最初安排帖子,但是当用户尝试更新帖子以使其重新安排或无限期取消时,我遇到了问题。

这是我正在尝试做的事情:

问题是,一旦 Celery 任务 ID 被列为已撤销,即使我尝试重新安排它,它仍会保持撤销状态。这似乎是一项足够常见的任务,应该有一个简单的解决方案。

0 投票
1 回答
1744 浏览

python - 检测和诊断工人静默崩溃

我正在使用守护进程运行 Celery 2 - http://ask.github.com/celery/cookbook/daemonizing.html和 RabbitMQ。有时会发生无声崩溃,我在 celeryd.log 中看到的唯一内容:

然后 - 只有“从经纪人那里得到任务”,没有任何任务处理。

ps -C celeryd显示 - 芹菜节点正在运行。

如果我这样做:/etc/init.d/celeryd restart- celeryd 进程的数量加倍。似乎旧进程不再受守护进程控制。

  1. 如何检测 - 为什么不执行任务处理,即使任务是从代理收到的?
  2. 为什么旧的 celeryd 进程不会被杀死/etc/init.d/celeryd restart