Я пытаюсь заставить 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 = отладка
Любой совет будет приветствоваться!
Спасибо!