我正在使用Django中的Celery和RabbitMQ作为Heroku的经纪人.我的RabbitMQ服务是Heroku上的CloudAMQP Tough.如果相关,我们一直在尝试插入一些频繁的内存泄漏,但一般情况下服务不会降级.
当网站被大量贩运时(如今),我开始偶尔出现如下错误:
Couldn't log in: a socket error occurred
任务完全抛弃,未在任何地方注册.这显然是一个关键业务问题.我的芹菜设置如下:
BROKER_URL = os.getenv('CLOUDAMQP_URL', DEFAULT_AMQP) CELERY_TASK_SERIALIZER = 'pickle' CELERY_RESULT_SERIALIZER = 'json' CELERY_ACCEPT_CONTENT = ['pickle', 'json'] CELERY_ENABLE_UTC = True # CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend'] CELERY_STORE_ERRORS_EVEN_IF_IGNORED = True CELERY_SEND_TASK_ERROR_EMAILS = True CELERY_RESULT_BACKEND = False CELERY_IMPORTS = ('business.admin', 'mainsite.views', 'utils.crons', 'mainsite.forms', ) BROKER_POOL_LIMIT = 5 # trying to clean up this memory leak CELERYD_MAX_TASKS_PER_CHILD = 5 CELERYD_TASK_TIME_LIMIT = 60*60
我对芹菜有点新意,所以我很乐意提供后续任何日志/等等都会有所帮助,但我甚至不确定在这一点上提供什么.在我的设置或环境中是否有任何明显的东西,似乎在大量贩运时可能导致此问题?