1
我用芹菜在Heroku上用的RabbitMQ并进行如下设置上:关闭芹菜任务延迟开发服务器
# settings.py
DEFAULT_AMQP = "amqp://guest:[email protected]//"
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上,我必须配置一个单独的工人动态句柄来处理这些排队的进程。对于开发服务器,我想仍然调用我的延迟任务,但是在同一个线程中执行它,而不是将其推迟到工作队列。这意味着我每次打电话给.delay()
时,在暂存服务器上,我都不想延迟任务,但实际上只是调用它,就好像我使用了正常的.__call__()
方法。
是否有芹菜设置或其他方式,我可以基本上关闭芹菜,并呼吁.delay()
传递给.__call__()
而不是?
谢谢,这正是我一直在寻找。 – jdotjdot 2014-09-30 04:47:25