see https://docs.celeryq.dev/en/stable/userguide/signals.html
[worker_init] --> Worker instance starts
[before_task_publish] --> Before task message sent to broker
|
v
[task_sent] / [after_task_publish] --> Task message dispatched to broker
[task_received] --> Worker receives the task message
|
v
[task_started] --> Worker starts executing the task
|
+------------------------------+
| |
v v
[task_succeeded] [task_failed]
| |
| v
| [task_retried] (optionally if retry)
| |
+------------------------------+
|
v
[task_revoked] (can happen anytime before or during execution)
[worker_shutdown] --> Worker instance shuts down