我正在使用Django中的Celery和RabbitMQ作为Heroku的经纪人。 Heroku上的我的RabbitMQ服务是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
我对芹菜有点新意,所以我很乐意提供后续任何日志/等等会有所帮助,但我甚至不确定此时提供什么。在我的设置或环境中是否有任何显而易见的事情,似乎在交通严重时可能导致此问题?