问题标签 [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.
python - 与 Celery 任务共享 Pyramid 的数据库会话
在我的 Pyramid 应用程序和 Celery 任务之间共享 SQLAlchemy 会话而只实例化数据库引擎一次的最佳方法是什么?我在这里查看了这个答案,但是,我不想创建另一个引擎(也恰好是全局的),因为这不是很干燥。此外,在 Pyramid 应用程序启动期间,应用程序 .ini 设置被传递到main函数中,因此我希望能够通过此方法配置引擎,但也使其可用于所有 Celery 任务。在 Celery 与 Pyramid 的集成方面,也许我做错了事?谢谢你的帮助!
python - 如何使用 celery 获取任务的执行时间?
我想获取任何任务的执行时间,假设我有 task_id。有没有办法获得执行时间?我知道芹菜会记录时间,但我不想解析日志文件。在类似的行中,有没有办法获得任务的等待时间,换句话说,从任务被安排到工作节点的时间到它开始执行的时间。基本上我想捕捉任何任务的整个生命周期。
python - 优雅地停止芹菜任务
我想优雅地退出芹菜任务(即不是通过调用revoke(celery_task_id, terminate=True)
)。我想我会向设置标志的任务发送一条消息,以便任务函数可以返回。与任务沟通的最佳方式是什么?
django-celery - SQS上带有路由键的芹菜任务
我设置了一个 django celery,我正在从 rabbitmq 切换到使用 SQS 作为代理。我发现我用 routing_key 值装饰的任务没有在代理中产生消息?
设置是:
任务定义为
一切都很好地路由到默认队列。不寻常的一切都适用于rabbit mq?
Amazon SQS 控制台显示队列“sentry”,但没有消息发送到它(我不确定是什么创建了队列)
奖励:不寻常的是,当我第一次尝试这个时(大约 4 小时前),一些消息似乎确实进入了哨兵队列?这可能是什么原因造成的?
谢谢
multithreading - 我们如何才能看到 Celery 中的线程?
我正在尝试使用--concurrency=1
(基于Workers Guide)在 Celery 中设置不同数量的并发线程。
无论如何,当我运行守护程序 ( celeryd ... --concurrency=1
) 时,我不知道如何查看正在运行的线程数。
它们是否对应于中显示的每一行ps -ef
?
celery - Celery 单任务持久化数据
假设一个任务足以让机器保持几分钟的忙碌状态。
我想得到任务的结果,然后根据结果,让工人再次执行相同的任务。
我找不到答案的问题是:我可以将数据保存在工作机器的内存中以便在下一个任务中使用它吗?
python - Celery 任务函数自定义属性
我有一个看起来像这样的芹菜任务功能-
my_custom_decorator 看起来像这样
我看到这是因为调用来执行任务的实际可调用对象是 celery 任务类类型的对象。如何在此对象上保留我的属性“ltc”,以便可以从任务中访问它,如上图所示 - my_task.ltc.some_func()
?
谢谢,
python - 如何使用 redis 代理从 celery 中删除任务?
我用 redis 添加了task
一些celery
错误broker
但现在我想删除不正确的task
,我找不到任何方法来做到这一点
是否有一些命令或一些 api 可以做到这一点?
celery - 如何在芹菜中每个块的执行结束时调用任务?
我正在尝试在完成大量任务时更新一些汇总数据。它基本上是在块的末尾实现和弦的概念。我该如何实施?
python - 如何在多节点环境下无缝维护django celery的代码
我有一个 Django 应用程序,它使用 django-celery、celery 和 rabbitmq 进行离线分布式处理。
现在设置是这样的,我需要在网络中的其他节点(与托管 Django Web 应用程序的位置不同)中运行 celery 任务(进而运行 celery 工作人员)。
为此,据我了解,我需要将所有 Django 代码放在这些单独的服务器中。不仅如此,我还必须安装 Django 应用程序所需的所有其他 python 库。
这样,我必须将所有 django 源代码传输到网络中所有可能的服务器,安装依赖项并运行某种更新系统,它将跨节点同步所有源。
这是正确的做事方式吗?有没有一种更简单的方法可以让 celery 工作人员在托管 Django 代码的 Web 应用程序服务器之外运行?
如果确实除了复制代码并在所有服务器中复制之外别无他法,有没有办法只复制 celery 任务所需的源文件(这将包括所有模型和视图 - 也不是那么小的任务)