问题标签 [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 回答
4302 浏览

python - 如何使用 Celery 延迟任务?

不谈delay方法。

我希望能够得到一个任务,因为它是 task_id 并在执行之前动态更改它的 ETA。

现在我必须取消它,并重新安排一个。如果计划的过程涉及很多东西,那就麻烦了。

0 投票
1 回答
595 浏览

python - 如何使用 celery 选择 task_id?

现在我从 async_result 得到一个 task_id 并且必须保存它以便稍后取回。如果我知道 task_id 是由什么组成的会更好,这样我就可以计算它而不是从数据库中提取它。EG:用 设置任务task_id=("%s-%s" % (user_id, datetime))

0 投票
2 回答
5570 浏览

rabbitmq - RabbitMQ 上 celery 任务优先级的解决方法?

我在 RabbitMQ 上运行带有 Celery 的 Django 作为队列来处理一些数据处理任务。当用户第一次注册时,我会启动 celery 任务,并定期更新他们的数据。但是,我当然想优先考虑运行当前在线用户的任务。我注意到 celery 中的任务有优先级设置,但似乎 rabbitmq 不支持这一点。这个线程http://groups.google.com/group/celery-users/browse_thread/thread/ac3b6123d63421e5/b7740def1389e87e?lnk=gst&q=priority#b7740def1389e87e建议有两个不同的队列,一个高优先级和一个低优先级,或者设置一个较低优先级任务的速率限制。

有没有人有一个很好的解决方法来实现优先级?提前致谢!

0 投票
1 回答
326 浏览

python - 还有其他人在使用 django-celery 保持 ghettoq 在后台运行时遇到困难吗?

很好地处理一个请求,然后客户端应用程序将下一个作业发布到队列中失败并出现此回溯。

我们正在切换到rabbitMQ,因为它“......正常工作”

0 投票
2 回答
3468 浏览

python - 在 django 中中止 Celery 中正在运行的任务

我希望能够中止从芹菜队列运行的任务(使用rabbitMQ)。我使用

其中 AsyncBoot 是一个已定义的任务。

我可以获取任务 ID(假设是apply_async返回的长字符串)并将其存储在数据库中,但我不确定如何调用中止方法。我看到如何使用 Abortable 任务类使方法可中止,但如果我只有任务 ID 字符串,我如何在任务上调用 .abort() ?谢谢。

0 投票
3 回答
333 浏览

python - 此 Web 应用程序是否需要任务队列?

背景

我有一个网络应用程序,它将根据用户输入创建图像。图像创建可能需要几秒钟。

问题

如果我让处理请求/响应的服务器线程也生成图像,这将占用一个线程几秒钟,并可能使我的服务器陷入困境,影响性能,杀死小狗等。

问题

我是否应该使用任务队列,例如Celery,以便服务器可以移交图像创建,然后返回处理请求/响应? 我让正在创建图像的用户等待没有问题,但我不希望它影响其他人访问该站点。

0 投票
1 回答
929 浏览

python - Django Celery AbortableTask 用法

我正在尝试使用 Celery 的AbortableTask功能,但文档示例似乎对我不起作用。给出的例子是:

但是,我收到错误:

我究竟做错了什么?

0 投票
1 回答
1126 浏览

python - 无法让 Celery run_every 属性工作

我正在尝试创建一些 Celery 定期任务,其中一些需要能够在运行时更改 run_every 时间。芹菜文档说我应该能够通过将 run_every 属性转换为属性来做到这一点(http://packages.python.org/celery/faq.html#can-i-change-the-interval-of-a-运行时的周期性任务)。

这是我正在做的事情:

不幸的是,当我打开 celerybeat 时,出现以下错误:

[2010 年 9 月 9 日星期四 15:44:40:CRITICAL/828]:celerybeat 引发异常:“datetime.timedelta”对象没有属性“is_due”

然后它会关闭。Celery 文档并没有真正讨论将 run_every 设为属性时要返回的内容,而且我在谷歌搜索时也没有任何运气。Celery 更新日志说,自 1.0.0 版以来,它能够在运行时更改定期任务的间隔。

开发。环境:

  • Python 2.6.5
  • Django 1.2.1
  • 芹菜 2.0.2
0 投票
1 回答
284 浏览

celery - 撤销功能是否需要额外的 api 调用来阻止队列中的任务执行?

我有一个并发设置为 1 的工作人员和一个进入无限循环 [用于测试] 的任务。我提交了一个任务 T1,工人得到它并开始工作。我提交了另一个任务,它得到了它,由于它仍然忙于 T1,T2 进入队列 [rabbitMQ]。

我试过 T2.revoke() 和 revoke(t2.task_id)

并与检查员核对以查看撤销状态。每件事看起来都不错。但是当我重新启动worker时,它仍然执行T2。

是否需要做任何事情来抑制 T2 的执行?

0 投票
1 回答
1164 浏览

django - 如何在 Django 视图中使用 celery 存储延迟调用的结果?

我已经遵循http://celeryq.org/docs/django-celery/getting-started/first-steps-with-django.html中的指导方针,并创建了一个视图,在 tasks.py 中调用我的测试方法:

但是,如果我的 add-method 需要很长时间才能响应,我如何存储我在调用 add.delay(1,2) 时得到的结果对象并使用它来检查使用 get later 的进度/成功/结果?