问题标签 [celery-task]

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 投票
0 回答
1804 浏览

django - 获取 django-storages 文件的内容进行处理

当我在本地提供媒体服务并且需要处理获取文件内容的任务时,这非常简单。但是,我只是转移到了 django-storages,这并不是替代品。有人可以为我提供一种将文档从 S3 中提取出来的方法,以便我可以处理它。

老办法:

但是我转移到 django-storages 并且这(显然)不起作用。如何从 s3 中提取文件的本地副本来处理它。我以为我可以简单地这样做:

新(失败)方式:

但是我不能在它爆炸时对此进行 read() 。

最后,我需要它同时适用于旧方式和新方式。显然我有点想多了..

更新:

遵循文档也无济于事。

谢谢您的帮助。

0 投票
1 回答
2200 浏览

redis - 我怎样才能得到周期性任务调度的结果

嘿伙计们,我是芹菜的新手。我正在研究定期任务调度。我的配置celeryconfig.py 如下:

如下mytask.py

当我跑步时, celery beat -s celerybeat-schedule我会得到

Configuration -> . broker -> redis://localhost:6379/0 . loader -> celery.loaders.default.Loader . scheduler -> celery.beat.PersistentScheduler . db -> celerybeat-schedule . logfile -> [stderr]@INFO . maxinterval -> now (0s) [2012-08-28 12:27:17,825: INFO/MainProcess] Celerybeat: Starting... [2012-08-28 12:28:00,041: INFO/MainProcess] Scheduler: Sending due task mytasks.add [2012-08-28 12:29:00,057: INFO/MainProcess] Scheduler: Sending due task mytasks.add [2012-08-28 12:30:00,064: INFO/MainProcess] Scheduler: Sending due task mytasks.add [2012-08-28 12:31:00,097: INFO/MainProcess] Scheduler: Sending due task mytasks.add

现在我没有得到我已经传递了参数(16,16)那么我怎么能得到这个函数的答案add(x,y)

0 投票
1 回答
144 浏览

celery - 想知道 celery 什么时候开始工作

我是新手celery。我有一些配置celeryconfig.py如下:

我已安排作业将在 30 秒内定期运行。现在我希望工作应该从那时开始29 aug4:00PM应该如何配置它?

0 投票
2 回答
18968 浏览

celery - 芹菜:列出所有任务,计划的,活动的*和*完成

赏金更新

如果可能的话,我想要一个不涉及监控线程的解决方案。


我知道我可以使用我的应用程序类查看计划任务和活动任务。InspectControl

但我找不到任何功能来显示已完成的任务。我知道这些信息必须至少可以暂时访问,因为我可以通过它来查找已完成的任务task_id

如何获得计划、活动和已完成任务的完整列表?或者可能同时列出所有任务?

0 投票
1 回答
1293 浏览

celery - 收到类型的未注册任务

我正在尝试运行内存中的任务。在工人上注册的任务

但它仍然给出错误:

0 投票
1 回答
2252 浏览

redis - 达到 eta 时,长 eta(8 小时以上)的 celery 任务会连续执行多次

我正在创建一个 eta 介于 3 到 20 小时之间的任务,当我查看工作日志时,对于这个任务,工作人员Got task from broker: ...在收到原始任务后每小时都会说“”,直到达到 eta。

我知道这与设置BROKER_TRANSPORT_OPTIONS = {'visibility_timeout': X}X 是以秒为单位的数字有关。

所以我玩了 visibility_timeout,如果我将它设置为小于 1 小时,那么我可以看到工作人员每 X 秒执行一次相同的任务,但是当我将visibility_timeoutX 设置为大于 1 小时时,它会保持默认为 1h,不管我设定的时间。

还有其他人遇到这个问题吗?这是一个已知的错误吗?

我正在使用带有 Redis 服务器版本 2.4.15 的 Celery 3.0.11 (Chiastic Slide)

0 投票
3 回答
56863 浏览

python - 如何手动从 shell 运行 celery 定期任务?

我正在使用芹菜和 django-celery。我已经定义了一个我想测试的定期任务。是否可以手动从 shell 运行定期任务以便查看控制台输出?

0 投票
1 回答
275 浏览

redis - 如果芹菜(显然)随机忘记任务,我该怎么办?

我有一个带有 sqlalchemy 的烧瓶应用程序和一个正在运行的芹菜工人。我使用 redis 作为我的经纪人。每次有人在对话中提交新消息时,都会启动一个工作人员,并且应该向所有参与对话的人发送通知邮件。因此,它连接到数据库并获取所有相关的电子邮件地址。

不幸的是,似乎有一个随机因素决定芹菜是否知道发送邮件的任务。在某些启动后它可以完美运行(有时),在某些启动后它根本不起作用。当它不起作用时,我得到的错误是:

当我用它运行 celery 时,--loglevel=DEBUG它会在任务列表中列出任务:

我还不能确定一个系统,什么时候可以工作,什么时候不工作。但是我已将所有相关软件包升级到今天可用的最新版本,但它仍然无法正常工作。

我希望对为什么这可能不起作用以及如何解决它有任何想法。非常感谢每一个反馈,因为我有点绝望!

0 投票
1 回答
4823 浏览

python - 从芹菜中的taskset_id中检索GroupResult?

我正在使用官方文档中描述的 celery group 开始一组 celery 任务

我还将组(任务集)ID 存储到数据库中,以便轮询 celery 的任务集状态。

有没有办法result从任务集 id 开始获取 GroupResult 对象(即 my )?类似于this question中所做的事情,但与芹菜组合作。

我已经尝试过这样做:

但它不起作用,因为r.results()总是空的。

我应该使用GroupResult.save()GroupResult.restore() 方法吗?

0 投票
1 回答
2172 浏览

celery - Celery - 错误处理和数据存储

我试图更好地理解有关 Celery 中结果和错误的常见策略。

我看到结果有状态/状态并在请求时存储结果——我什么时候使用这些数据?错误处理和数据存储是否应该包含在任务中?

这是一个示例场景,以防它有助于更​​好地理解我的目标:

我有一个对用户地址进行 goeocodes 的地理编码任务。如果任务失败或成功,我想更新数据库中的一个字段让用户知道。(错误处理)成功后,我希望将地理编码数据插入数据库(数据存储)

应该采取什么方法?