Задачи Python Celery не обрабатываются - PullRequest
2 голосов
/ 27 мая 2019

Я пытаюсь заставить Celery работать с Python 3.6 на моей машине с Windows, используя Redis как мой брокер сообщений. Тем не менее, я считаю, что только около половины моих задач выполняются. Оставшиеся задачи никогда не обрабатываются.

Чтобы помочь отладить эту проблему, я создал простую задачу, которая просто ждет 5 секунд и затем пишет в файл:

@capp.task
def test(inputs):

    print('Entering function Test for simulation: ' + inputs['simulation'])
    time.sleep(5)

    fout = open(inputs['results_path'] + inputs['simulation'], 'w')
    fout.write("Test\n")
    fout.close()

    return 0.0

, где я звоню выше, следующим образом:

    inputs_array = []
    inputs_array.append({'simulation':'Test1','results_path':results_path})
    inputs_array.append({'simulation':'Test2','results_path':results_path})
    inputs_array.append({'simulation':'Test3','results_path':results_path})
    inputs_array.append({'simulation':'Test4','results_path':results_path})

    print("Entering the Test simulation: ")
    tasks = []

    for inputs in inputs_array:
        task = vmlvsv.app_test.test.apply_async((inputs,), compression='zlib')
        tasks.append(task)

Исходя из рекомендаций, я использовал следующие настройки celeryconfig:

CELERY_ACKS_LATE = True
CELERYD_PREFETCH_MULTIPLIER = 1

Однако, только подмножество из четырех вышеупомянутых задач когда-либо выполняется (обычно только 2, а иногда 3)

Я использую сельдерей (3.1.25) и редис (2.10.6), где сельдерей называется следующим образом:
работник сельдерея -A mp_app.capp --loglevel = отладка

Любой совет будет приветствоваться!

Спасибо!

...