关闭开发服务器上的Celery任务延迟

jdotjdot

我在Heroku上使用RabbitMQ和以下设置使用Celery:

# settings.py

DEFAULT_AMQP = "amqp://guest:guest@localhost//"
BROKER_URL = os.getenv('CLOUDAMQP_URL', DEFAULT_AMQP)
CELERY_TASK_SERIALIZER = 'pickle'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_ENABLE_UTC = True
CELERY_STORE_ERRORS_EVEN_IF_IGNORED = True
CELERY_RESULT_BACKEND = False
BROKER_POOL_LIMIT = 5

# trying to clean up this memory leak
CELERYD_MAX_TASKS_PER_CHILD = 5
CELERYD_TASK_TIME_LIMIT = 60*10  # time limit in seconds--watch if we end up throwing big tasks onto this

我通常使用来调用任务.delay()

在Heroku上,我必须配置一个单独的dyno dyno来处理这些排队的进程。对于开发服务器,我仍然想调用延迟的任务,但要在同一线程中执行而不是将其推迟到工作人员队列中。这意味着每次我.delay()在登台服务器上调用时,我都不想延迟任务,而实际上只是想像使用常规.__call__()方法那样调用它

是否有芹菜设置或其他一些方法可以让我基本关闭芹菜并发出呼叫.delay().__call__()代替?

索林·纳亚苏(Sorin Neacsu)

为开发环境设置CELERY_ALWAYS_EAGER为True:http ://celery.readthedocs.org/en/latest/configuration.html#celery-always-eager

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章