celery-task相关内容

如何按名称限制运行芹菜任务的最大数量

如何限制可以同时运行的特定芹菜任务的实例数? 我有一个处理大文件的任务。我遇到了一个问题,用户可能会启动多个任务,导致服务器在尝试一次处理太多文件时耗尽CPU和内存。我希望确保在任何给定时间只运行这一类型任务的N个实例,并且其他任务将在计划程序中排队,直到其他任务完成。 我看到任务修饰器中有一个rate_limit选项,但我认为这不是我想要的。如果我对文档的理解正确,这只会限制任务启动 ..
发布时间:2022-02-27 13:14:11 Python

Django导出功能和Celery任务

我想使用Celery来异步运行我的任务,但是我遇到了一些麻烦.我想通过导出方法创建一个数据文件. 上下文: 用户可以将搜索结果导出到.xlsx文件中.但是有2种情况: 搜索包含少于70.000行.这样,用户可以直接使用 HttpResponse 下载生成的输出文件. 搜索包含70.000多行.在这种情况下,文件为由于使用Celery任务,因此可以将其写入媒体文件夹.这样,即使请 ..
发布时间:2021-05-01 20:17:21 Python

Kombu/Celery消息传递

我有一个发送&接收消息,kombu,并使用Celery对消息进行任务处理.Kombu alon,我可以正常收到消息.当我发送"Hello"时,kombu会收到"Hello".但是,当我添加任务时,kombu收到的是芹菜的任务ID. 我在此项目中的目的是让我可以安排发送和接收消息的时间,因此也可以安排Celery. 我想知道的是为什么kombu接收任务ID而不是发送的消息?我已经搜索了并 ..
发布时间:2021-04-21 20:01:07 Python

Celery Task Custom跟踪方法

我的主要问题取决于我需要知道某个任务是否仍在排队,已开始或已被撤销的事实. 我无法使用芹菜和Redis进行此操作,因为结果在Redis中被删除24小时. 我有一些想法,但我认为最可靠的想法是让数据库跟踪并手动添加用户正在运行的任务所需的关键信息. 有一些方法可以在任务开始之前运行,并且当我创建任务或撤消它们时,我还可以手动使用数据库?我不会为每个任务创建一个新行,而是为每个用户更 ..
发布时间:2021-04-21 20:00:54 Python

芹菜花-如何加载以前捕获的任务?

我开始将芹菜花用于任务监控,它的工作原理很迷人.不过,我有一个顾虑,如何在花朵重启后“重新加载"受监视任务的信息?我将redis用作代理,即使在意外重启服务(或服务器)的情况下,我也需要选择检查任务. 预先感谢 解决方案 我发现了我.这是在运行芹菜花的命令中设置持久标记的问题. ..
发布时间:2021-04-21 19:59:49 Python

使用Celery for Python,一旦具有特定任务ID的特定任务成功或失败,是否可以接收通知?

我想知道是否有一种方法可以立即使用python celery监视任务是否完成或失败.我有一个事件要根据特定任务的结果启动. 解决方案 您可以使用芹菜 @shared_task 来运行任务,并在其中使用 try 块,> @shared_taskdef my_task(input1,input2,...):配置...尝试:做东西fire_success_event() ..
发布时间:2021-04-21 19:59:09 Python

如何将芹菜任务注册到特定工人?

我正在使用Python/Django开发Web应用程序,并且有一些任务正在芹菜中运行. 我必须一次运行一个任务A,所以我使用--concurrency = 1创建了工作程序,并使用以下命令将任务A路由到该工作程序. celery-项目工作者-Q A -c 1 -l INFO 此工作程序处理任务A并将其他任务路由到默认队列后,一切工作正常. 但是,当我使用 inspect 命令获 ..
发布时间:2021-04-21 19:58:42 其他开发

让Celery广播所有员工的返回结果

有没有办法从芹菜广播任务中的每个工作人员那里获得所有结果?我想监视所有工人是否一切正常.发送任务的工作人员清单也将不胜感激. 解决方案 否,这不容易实现. 但是您不必局限于内置的amqp结果后端,您可以使用Kombu( http://kombu.readthedocs.org )发送您自己的结果,这是Celery使用的消息传递库: 从芹菜进口芹菜从海带进口交易所results_ex ..
发布时间:2021-04-21 19:58:17 Python

如何在Celery中使两个任务互斥?

是否有一种方法可以禁止在Celery中同时运行两个不同的任务?我当时正在考虑定义一个新的并发级别为1的队列,并将这些任务发送到该队列,但是我找不到一个示例.有可能吗? 谢谢! 解决方案 是的,如果您不必担心整体吞吐量,则可以创建一个单独的队列并将专用的并发设置为1.可以根据需要创建任意数量的队列,并配置每个工作人员从哪个队列接收消息. 启动工作程序时,可以传递 -Q 参数设置其 ..
发布时间:2021-04-21 19:56:51 其他开发

Celery任务功能的自定义属性

我有一个像这样的芹菜任务功能- @task(base = MyBaseTask)@my_custom_decoratordef my_task(* args,** kwargs):my_task.ltc.some_func()#失败-对象上不存在属性ltc 和my_custom_decorator看起来像这样 def my_custom_decorator(f):从functools导 ..
发布时间:2021-04-21 19:56:15 Python

如何覆盖芹菜任务的后端

我们将Redis用作结果后端.但是,对于一项任务,我们想重写它以使用RabbitMQ代替. Task.backend 的文档说: 用于此任务的结果存储后端.默认为CELERY_RESULT_BACKEND设置 所以我假设我们可以将 Task.backend 设置为 CELERY_RESULT_BACKEND 可接受的相同格式的字符串. 所以我试试这个: celeryc ..
发布时间:2021-04-21 19:55:57 Python

使用组产生芹菜链

我坚持使用相对复杂的芹菜链配置,试图实现以下目标.假设有一系列任务,如下所示: chain1 =链(DownloadFile.s("http://someserver/file.gz"),#下载文件,返回临时文件名UnpackFile.s(),#解压缩gzip压缩文件,返回临时文件名ParseFile.s(),#解析文件,返回要下载的列表URL) 现在我想并行下载每个URL,所以我要做的是 ..
发布时间:2021-04-21 19:54:47 Python

烧瓶芹菜任务锁定

我正在将Flask与Celery结合使用,并且试图锁定一个特定任务,以便一次只能运行一个任务.在celery文档中,给出了执行此操作的示例 Celery文档,请确保一次只能执行一次任务.给出的示例是针对Django的,但是我正在使用flask我已尽力将其转换为可与Flask一起使用,但是我仍然看到具有锁的myTask1可以多次运行. 我不清楚的一件事是,如果我正确地使用了高速缓存,我之前从未 ..
发布时间:2021-04-21 19:54:37 Python

在芹菜的多个队列中确定队列的优先级?

我们将celery用于异步后台任务,并且有2个队列用于不同优先级的任务.我们有2个节点集群,分别为它们服务.一切都按预期进行. 问题: 我们主要收到低优先级的任务.为了优化资源利用,我想知道是否有一种方法可以配置工作程序(侦听高优先级队列)以侦听两个队列.但是,只要有某些作业存在,就从较高优先级的队列中取出作业?并回退到低优先级队列. 我已经完成了@ Celery任务优先级中讨论 ..
发布时间:2021-04-21 19:53:37 其他开发

芹菜-链内组

我想在一条链中使用一组(或大块),例如: 链(getRange.s(3),GROUP(),xsum.s()) 其中 GROUP()是一组 double()任务,即 group(double(0),double(1),double(2)).在中发布了类似的问题如何将一个将列表返回到一个组的Celery任务链接起来?,但没有说明如何将输出从组传递到该链中的下一个任务. @taskdef ge ..
发布时间:2021-04-21 19:51:57 Python