小编Lui*_*deu的帖子

芹菜工人睡眠无法正常工作

我有下一个问题,我在 Python 上使用的进程必须等待 X 秒,该进程本身可以正常工作,问题是当我将其作为 celery 的任务时。

当工作人员尝试对一项任务执行 time.sleep(X) 时,它会暂停工作人员中的所有任务,例如:

我有工人 A,它可以同时执行 4 个任务(q、w、e 和 r),任务 r 的睡眠时间为 1800 秒,因此工人同时执行 4 个任务,但是当r 任务做睡眠,工人也停止 q、w 和 e。

这是正常的吗?你知道我该如何解决这个问题吗?

编辑:这是带有我的节拍和队列的 celery.py 示例

app.conf.update(
CELERY_DEFAULT_QUEUE='default',
CELERY_QUEUES=(
    Queue('search', routing_key='search.#'),
    Queue('tests', routing_key='tests.#'),
    Queue('default',    routing_key='tasks.#'),
),

CELERY_DEFAULT_EXCHANGE='tasks',
CELERY_DEFAULT_EXCHANGE_TYPE='topic',
CELERY_DEFAULT_ROUTING_KEY='tasks.default',
CELERY_TASK_RESULT_EXPIRES=10,
CELERYD_TASK_SOFT_TIME_LIMIT=1800,
CELERY_ROUTES={
    'tests.tasks.volume': {
        'queue': 'tests',
        'routing_key': 'tests.volume',
    },
    'tests.tasks.summary': {
        'queue': 'tests',
        'routing_key': 'tests.summary',
    },
    'search.tasks.links': {
        'queue': 'search',
        'routing_key': 'search.links',
    },
    'search.tasks.urls': {
        'queue': 'search',
        'routing_key': 'search.urls',
    },
},

CELERYBEAT_SCHEDULE={
    # heavy one
    'each-hour-summary': …
Run Code Online (Sandbox Code Playgroud)

python sleep worker celery

6
推荐指数
1
解决办法
5713
查看次数

标签 统计

celery ×1

python ×1

sleep ×1

worker ×1