mirror of
https://gricad-gitlab.univ-grenoble-alpes.fr/tienyoun/presentations.git
synced 2026-09-26 13:31:01 +00:00
3.2 KiB
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>