Skip to content
This repository was archived by the owner on May 18, 2023. It is now read-only.

Conversation

@zt50tz
Copy link

@zt50tz zt50tz commented Apr 18, 2022

Hello!

Thank you for your package.

I have some problems if i run many same tasks with storing state of task progress:

  • I can't use self.update_state with @celery.task(bind=True);
    It works, but updates only last task state. Even I run update_state in different task request. It happens because task.update_state (without task_id argument) calls task.request but it returns only top element of task request stack.

  • Not all tasks turned for started state;
    Some random task turned for started state but not all of them.

So i added one more kwarg parameter in trace.py that provides task uuid for further usage.

I added example that shows how it works — pretty simple, but impossible without this argument. I understand that you store examples in different repository but don't know how to show this technique in one place, so i added it here.

Thanks once more for your work.

@kai3341
Copy link
Owner

kai3341 commented Apr 20, 2022

Я уже пару лет не трогаю эту либу -- там с monkey patching на самом деле дикое уродство. Так вышло, что мои проекты на текуший момент даже не используют celery -- я даже проверить не особо могу предложенные PR

Кажется, мне даже суть проблемы знакома. Неужто NS правите?

@zt50tz
Copy link
Author

zt50tz commented Apr 20, 2022

Хохо, не, не знаю, что такой "NS" :( Просто хотелось, чтобы flower отображал, что происходит, ну и за state тасков подглядывать, пока они в процессе.

Суть проблемы, по факту, заключается, что task.request возвращает только последний добавленный request, хотя в пакете он правильно туда кладется и вынимается. Но оно там захардкожено на возвращение именно последнего. И через monkey patching я это не рискнул править. Вообще, в самом пакете добавилась одна строка, которая прокидывает task_uuid в саму задачу.

Monkey patching... Ну оно работает, а это уже результат :) Асинхронности как то все не видать в celery, хотя они вроде его обещали с пятой ветки.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants