(feat) pass celery task uuid to kwargs for further usage#36
Conversation
|
Я уже пару лет не трогаю эту либу -- там с monkey patching на самом деле дикое уродство. Так вышло, что мои проекты на текуший момент даже не используют celery -- я даже проверить не особо могу предложенные PR Кажется, мне даже суть проблемы знакома. Неужто NS правите? |
|
Хохо, не, не знаю, что такой "NS" :( Просто хотелось, чтобы flower отображал, что происходит, ну и за state тасков подглядывать, пока они в процессе. Суть проблемы, по факту, заключается, что task.request возвращает только последний добавленный request, хотя в пакете он правильно туда кладется и вынимается. Но оно там захардкожено на возвращение именно последнего. И через monkey patching я это не рискнул править. Вообще, в самом пакете добавилась одна строка, которая прокидывает Monkey patching... Ну оно работает, а это уже результат :) Асинхронности как то все не видать в celery, хотя они вроде его обещали с пятой ветки. |
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_statewith@celery.task(bind=True);It works, but updates only last task state. Even I run
update_statein different task request. It happens becausetask.update_state(withouttask_idargument) callstask.requestbut it returns only top element of task request stack.Not all tasks turned for
startedstate;Some random task turned for
startedstate 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.