докере, celery внутри виртуального окружения запустил командой celery -A tasks worker --loglevel=INFO.
Задача, которая должна выполняться (tasks.py)
from celery import Celery
app = Celery('tasks', broker='pyamqp://guest@localhost:5672//')
@app.task
def add():
with open('test.txt', 'w') as file:
file.write('jkljlkjlk')
Запуск происходит так:
from tasks import add
add.delay()
В логах celery видно, что принята задача, но файл не создается. Что я делаю не так?
Попробуй логи прям в таске до и после записи файла выводить, у целери бывает что сгенерированное имя таски на продюсере и консюмере не совпадает Т.е. воркер мог принять но не приступить
А логи как выводить? Просто print?
А ну или ты в фс контейнера писал, мог волюм не прокинуть) Экзекни в баш контейнера - вдруг файл там)
Ну в идеале логгинг но для начала пусть принт
volume в контейнер не прокидывал. Щас попробую прокинуть
Ну опять же экзекнуться в контейнеер тож можно
М... У тебя ж воркер снаружи, как я понял. Какой волюм?
воркер снаружи
Ну тогда да дело не в волюме
Отстань от волюма и посмотри, какая у воркера текущая папка. Может всё скучно и ты файл не там ищешь.
А да тож вполне возможно
файлы лежат в одной директории
Э... Кто сказал? :-) И что за "одна директория"?
Та самая... эта
Заинтриговал... Какая именно и почему именно она?
в Celery с активированным виртуальным окружением
Прекрасно. Вот в этой папке Celery с длинным путём файлов нет случайно?
есть два файла, на скриншоте выше присылал main.py и tasks.py и папка venv
Чем там в итоге все закончилось?
пока ничем. В процессе)
Нуу например возможно выяснилось что таска даже не вызывалась?
99%, что таска не вызывается. Проблема скорее всего где то еще...
Не ну ты же говоришь целери таску получил)
говорит, что получил
Ну название же наверное разное разве нет?)
Обсуждают сегодня