3
我们有8个内核,16 GB内存,运行芹菜的Linux服务器, 它运行一个芹菜工作队列myQueue
,并在gevent池下运行1000个并发。执行1000个任务后,Celery + Gevent池挂起
执行任务约1小时后,工人突然冻结,它不是从celery beat
这里接受新的任务,是我们对芹菜配置
App = Celery('tasks')
class Conf:
BROKER_URL = 'amqp://<user>:<pass>@<host>:<port>/<vhost>'
CELERY_IGNORE_RESULT = True
CELERY_IMPORTS = ("worker_class",)
CELERYBEAT_SCHEDULE = {
'RunTask':{
'task': 'tasks.worker.MyWorker',
'schedule' : timedelta(minutes=5)
}
}
App.config_from_object(CONF)
我们运行下面的芹菜
celery worker --workdir=tasks/ -A worker -P gevent -c 1000 -Q myQueue --loglevel=INFO
也可以有人解释我怎么可以使用gevent池使用celery multi