我正在使用Celery 3.1.17,RabbitMQ服务器作为代理,后端禁用。
芹菜设置:
CELERY_CREATE_MISSING_QUEUES = True
CELERY_IGNORE_RESULT = True
CELERY_DISABLE_RATE_LIMITS = True
CELERY_ACKS_LATE = True
CELERY_TASK_RESULT_EXPIRES = 1
代理托管在单独的服务器上。
RabbitMQ server configuration : 2GB RAM, dual core
Codebase server : 8 GB RAM, quad core
芹菜工人设置:
Workers : 4
Concurrency : 12
Memory Consumption in the codebase server : 2GB (max)
CPU Load in codebase server : 4.5, 2.1, 1.5
Tasks Fired : 50,000
Publishing Rate : 1000/s
问题:
在每16,000个任务完成后,工作人员停止约1-2分钟然后重新启动。
另外约200-300个任务失败了。
在这种情况下,CPU和内存消耗不是瓶颈。
这是一个极端的东西吗? 如何确保任务的执行率不变并防止消息丢失?