celery相关内容

将芹菜任务的结果链接到分布式组中

与this other question中一样,我希望从一个芹菜任务返回的列表中创建一个芹菜组。第一个任务将返回一个列表,第二个任务将该列表分解为列表中每一项的并发任务。 计划是在下载内容时使用它。第一个任务从网站获取链接,第二个任务是一个链,它下载页面,对其进行处理,然后将其上传到S3。最后,一旦所有的子页面都完成了,网站在我们的数据库中被标记为完成。类似于: chain( ..
发布时间:2022-06-27 16:33:08 Python

我们可以将芹菜作为消息消费者(而不是生产者)和分发者吗?

使用celery,是否可以使用RabbitMQ侦听新邮件并计划工作进程来处理它? celerydocumentation的很多内容都是关于将其用作代理(比方说RabbitMQ)的任务生产者,在该代理中执行任务并通过代理交付。 我希望使用来自代理的消息(由其他服务生成),并使用celery处理这些消息。 推荐答案 是。您所要做的就是配置放入rabbitMQ中的消息,使芹菜将其 ..
发布时间:2022-04-15 14:10:11 其他开发

芹菜/Redis同一任务被多次并行执行

我有两个自定义任务(TaskA和TaskB),它们都继承自celery.Task。调度程序时不时地启动TaskA,而TaskA每次启动N次TaskB使用不同的参数。但由于某些原因,有时使用相同参数的相同TaskB会同时执行两次,这会导致数据库出现不同的问题。 class TaskA(celery.Task): def run(self, *args, **kwargs): ..
发布时间:2022-02-27 13:30:21 Python

如何实现芹菜多工自动伸缩?

命令celery worker -A proj --autoscale=10,1 --loglevel=info启动具有自动缩放功能的工作进程。 创建具有多个的工作人员时, me@mypc:~/projects/x$ celery multi start myworker --autoscale=10,1 celery multi v4.1.0 (latentcall) > Start ..
发布时间:2022-02-27 13:28:59 Python

如何跟踪芹菜的重试情况

在芹菜中,如何跟踪当前重试?我知道我可以这样做: @app.task(bind=True, default_retry_delay=900, max_retries=5) def send_email(self, sender=None, to=None, subject=None, message=None): try: # Send email except Except ..
发布时间:2022-02-27 13:27:42 Python

芹菜,叫延时倒计时

我正在尝试了解芹菜是如何工作的 在tasks.py文件中的Django应用程序中,我创建了一个任务: @celery.shared_task(default_retry_delay=2 * 60, max_retries=2) def my_task(param1, param2): # There are some operations 我使用以下代码调用此任务: ..
发布时间:2022-02-27 13:26:27 Python

芹菜:启动时启动任务

我有一个任务需要在芹菜启动时启动。此任务下一次通过回调/ETA每5分钟运行一次。 我找到了一些关于它的线索,但在芹菜3上似乎没有奏效的线索。 感谢您的帮助, 阿诺德。 推荐答案 芹菜irc频道的某个人通过使用";worker_ready.connect";信号:http://docs.celeryproject.org/en/latest/userguide ..
发布时间:2022-02-27 13:25:06 Python

芹菜即使允许腌制也不接受腌制

我正在尝试编写一个芹菜应用程序,它将Numpy数组(或任何任意对象)传递给Worker。据我所知,这需要通过pickle进行序列化(注意:我知道安全问题,但在本例中这不是问题)。 但是,即使在尝试了所有我能找到的允许Pickle作为序列化程序的方法之后,我仍然得到以下Kombu异常: kombu.exceptions.ContentDisallowed: Refusing to des ..
发布时间:2022-02-27 13:22:32 Python

Heroku Dyno有多少个CPU内核?

我将Django与芹菜3.0.17一起使用,现在正在尝试计算默认情况下运行多少个芹菜工人。 从this link我了解到(没有修改此配置)工作进程的数量当前必须等于CPU核心的数量。这就是我需要前者的原因。我无法通过谷歌或搜索Heroku's dev center找到官方答案。我认为是4个核心,因为我看到4个并发连接到我的AMQP服务器,但我想确认这一点。 推荐答案 CPU数量不会发 ..
发布时间:2022-02-27 13:19:01 其他开发

为什么我的程序在urllib3日志启动新的HTTPS连接后挂起?

我正在尝试诊断一个问题,其中我的一些芹菜工作进程似乎挂起了几分钟。我有许多任务需要进行几个IO调用(通常是对第三方API)。在任何给定的工作中,我可能会向各种API发出数千个请求。我看过这些日志,它们没有什么共同之处:它们在urllib3连接到远程url后挂起。 在我的作业结束时(大约需要30分钟),通常有几个任务处于挂起状态。 以下是我用来得出urllib3是罪魁祸首的日志示例: ..
发布时间:2022-02-27 13:17:10 Python

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

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

芹菜单元测试重试

我当前正在为我的芹菜任务编写单元测试,希望测试我的任务是否正在重试。 注意:在测试设置中,ALWAYS_EAGER设置为True @app.shared_task(bind=True, soft_time_limit=600, autoretry_for=(Exception,), retry_kwargs={'max_retries': 3}, re ..
发布时间:2022-02-27 13:11:41 其他开发

在Django中调用.Delay()后,芹菜任务挂起

从Django应用程序调用导入任务的.delay()方法时,进程停滞,请求从未完成。 我们在控制台上也没有收到任何错误。 使用PDB设置set_trace()会产生相同的结果。 检查了以下无助于解决问题的问题: Calling celery task hangs for delay and apply_async celery .delay hangs (recent, n ..
发布时间:2022-02-27 13:08:32 Python