Files
presentations/2026/celery2/slides/02-sequence.md
T
2026-09-24 16:39:17 +02:00

3.2 KiB

<script type="text/mermaid"> %%{init: {'theme': 'light', 'themeVariables': { 'darkMode': false }}}%% sequenceDiagram actor Web Browser participant Django future participant Queue future participant Django-Thread Web Browser->>+Django: GET /progress create participant Django-Thread Django->>+Django-Thread: Create thread create participant Queue Django-Thread-->>Queue: Create queue Django-Thread-->>Django: <<[Queue]>> Django-Thread->>+RabbitMQ: Subscribe Django-Thread-)+Queue: <> par RabbitMQ Listen Thread loop RabbitMQ Communication RabbitMQ-)Django-Thread: <> Django-Thread->>Queue: <> end loop heartbeat Django-Thread->>Queue: <> end and Django SSE Thread loop SSE Communication Django->>Queue: queue.get() Queue-->>Django: <> deactivate Queue Django->>Web Browser: <> end end deactivate Django deactivate Django-Thread </script>

<script type="text/mermaid"> %%{init: {'theme': 'light', 'themeVariables': { 'darkMode': false }}}%% sequenceDiagram actor Web Browser participant Django future participant Queue future participant Django-Thread Web Browser->>+Django: GET /progress create participant Django-Thread Django->>Django-Thread: Create thread create participant Queue Django-Thread-->>Queue: Create queue Django-Thread-->>Django: <<[Queue]>> Django-Thread->>+RabbitMQ: Subscribe Django-Thread-)Queue: <> par RabbitMQ Listen Thread loop RabbitMQ Communication RabbitMQ-)Django-Thread: <> Django-Thread->>Queue: <> break Queue is full Django-Thread-xQueue: <> Django-Thread-xDjango-Thread: Kill self destroy Django-Thread Django-Thread-xDjango-Thread: end end and Django SSE Thread loop SSE Communication Django->>Queue: queue.get() Queue-->>Django: <> Django->>Web Browser: <> break Timeout while waiting for messages destroy Web Browser Django-xWeb Browser: Close connection Deactivate Django destroy Queue Django-xQueue: garbage collector end end end </script>