170 похожих чатов

Привет! Пытаюсь разобраться с Celery + RabbitMQ. RebbitMQ запустил в

докере, 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 видно, что принята задача, но файл не создается. Что я делаю не так?

26 ответов

19 просмотров

Попробуй логи прям в таске до и после записи файла выводить, у целери бывает что сгенерированное имя таски на продюсере и консюмере не совпадает Т.е. воркер мог принять но не приступить

А ну или ты в фс контейнера писал, мог волюм не прокинуть) Экзекни в баш контейнера - вдруг файл там)

Илья Вязанкин
А логи как выводить? Просто print?

Ну в идеале логгинг но для начала пусть принт

Илья-Вязанкин Автор вопроса
Владимир
А ну или ты в фс контейнера писал, мог волюм не п...

volume в контейнер не прокидывал. Щас попробую прокинуть

Илья Вязанкин
volume в контейнер не прокидывал. Щас попробую про...

Ну опять же экзекнуться в контейнеер тож можно

Илья Вязанкин
volume в контейнер не прокидывал. Щас попробую про...

М... У тебя ж воркер снаружи, как я понял. Какой волюм?

Илья Вязанкин
воркер снаружи

Ну тогда да дело не в волюме

Илья Вязанкин
воркер снаружи

Отстань от волюма и посмотри, какая у воркера текущая папка. Может всё скучно и ты файл не там ищешь.

Илья-Вязанкин Автор вопроса
Илья Вязанкин
файлы лежат в одной директории

Э... Кто сказал? :⁠-⁠) И что за "одна директория"?

Владимир
Та самая... эта

Заинтриговал... Какая именно и почему именно она?

Илья-Вязанкин Автор вопроса

в Celery с активированным виртуальным окружением

Илья Вязанкин
в Celery с активированным виртуальным окружением

Прекрасно. Вот в этой папке Celery с длинным путём файлов нет случайно?

Илья-Вязанкин Автор вопроса
evle
Прекрасно. Вот в этой папке Celery с длинным путём...

есть два файла, на скриншоте выше присылал main.py и tasks.py и папка venv

Чем там в итоге все закончилось?

Илья-Вязанкин Автор вопроса
Илья Вязанкин
пока ничем. В процессе)

Нуу например возможно выяснилось что таска даже не вызывалась?

Илья-Вязанкин Автор вопроса
Владимир
Нуу например возможно выяснилось что таска даже не...

99%, что таска не вызывается. Проблема скорее всего где то еще...

Илья-Вязанкин Автор вопроса

говорит, что получил

Илья Вязанкин
говорит, что получил

Ну название же наверное разное разве нет?)

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта