101得票5回答
理解Celery任务预取

我刚刚发现了一个配置选项CELERYD_PREFETCH_MULTIPLIER(文档)。默认值为4,但我想要预取关闭或者尽可能低。我现在把它设置为1,离我想要的很接近,但还有一些事情我不理解: 为什么这个预取是个好主意?我真的看不出来有什么理由,除非消息队列与工作进程之间存在很大的延迟(在...

97得票3回答
我该如何在Shell中手动运行Celery定时任务?

我正在使用celery和django-celery。我定义了一个定期任务,希望进行测试。是否可以从shell手动运行定期任务以便查看控制台输出?

95得票3回答
Celery - 获取当前任务的任务ID

如何在任务中获取任务的task_id值?这是我的代码:from celery.decorators import task from django.core.cache import cache @task def do_job(path): "Performs an operati...

94得票4回答
使用多进程的方式并行分发Celery任务

我有一个需要CPU大量计算的Celery任务。我希望利用许多EC2实例的所有处理能力(核心),以便更快地完成此任务(使用多进程的Celery并行分布式任务 - 我想)。 我正试图更好地理解诸如线程、多进程、分布式计算和分布式并行处理等术语。 示例任务: @app.task for ite...

93得票2回答
Celery并发、工作进程和自动扩展的区别

在我的/etc/defaults/celeryd配置文件中,我已经设置了:CELERYD_NODES="agent1 agent2 agent3 agent4 agent5 agent6 agent7 agent8" CELERYD_OPTS="--autoscale=10,3 --concu...

92得票11回答
使用RabbitMQ的Celery:AttributeError:“DisabledBackend”对象没有属性“_get_task_meta_for”

我正在运行使用Celery进行第一步操作的教程。 我们定义了以下任务:from celery import Celery app = Celery('tasks', broker='amqp://guest@localhost//') @app.task def add(x, y): ...

88得票3回答
使用指数退避重新尝试Celery任务

对于这样的任务:from celery.decorators import task @task() def add(x, y): if not x or not y: raise Exception("test error") return self.wai...

87得票6回答
使用django-celery进行单元测试?

我正试图为我们的django-celery项目制定一种测试方法。我已经阅读了文档中的注释,但它并没有给我一个好的实际操作方案。我不担心测试实际守护程序中的任务,只是要测试我的代码功能。 主要我想知道: 我们如何在测试期间绕过task.delay()(我尝试设置CELERY_ALWAYS_E...

82得票4回答
Redis最大可以存储多大的值?

有人知道redis可以存储的最大值大小吗?我想将redis作为消息队列与Celery一起使用,以存储需要由另一台服务器上的worker处理的一些小文档,并且我想确保这些文档不会太大。 我找到了一个提到1GB的参考页面,但是当我按照页面上的链接查看答案来源时,链接已经失效。这是链接: http:...

81得票4回答
Django Celery 日志最佳实践

我正在尝试将Celery日志记录与Django集成。 我在settings.py中设置了输出到控制台的日志记录(因为我正在使用Heroku托管,这个功能正常工作)。 在每个模块的顶部,我写了以下代码: import logging logger = logging.getLogger(__n...