mirror of
https://gricad-gitlab.univ-grenoble-alpes.fr/tienyoun/presentations.git
synced 2026-09-26 21:41:08 +00:00
84 lines
3.2 KiB
Markdown
84 lines
3.2 KiB
Markdown
<div data-mermaid class="r-stretch">
|
|
<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: <<current celery tasks>>
|
|
par RabbitMQ Listen Thread
|
|
loop RabbitMQ Communication
|
|
RabbitMQ-)Django-Thread: <<event>>
|
|
Django-Thread->>Queue: <<event>>
|
|
end
|
|
loop heartbeat
|
|
Django-Thread->>Queue: <<event>>
|
|
end
|
|
and Django SSE Thread
|
|
loop SSE Communication
|
|
Django->>Queue: queue.get()
|
|
Queue-->>Django: <<event>>
|
|
deactivate Queue
|
|
Django->>Web Browser: <<event>>
|
|
end
|
|
end
|
|
deactivate Django
|
|
deactivate Django-Thread
|
|
</script>
|
|
</div>
|
|
|
|
---
|
|
|
|
<!--Client leaves-->
|
|
<div data-mermaid class="r-stretch">
|
|
<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: <<current celery tasks>>
|
|
par RabbitMQ Listen Thread
|
|
loop RabbitMQ Communication
|
|
RabbitMQ-)Django-Thread: <<event>>
|
|
Django-Thread->>Queue: <<event>>
|
|
break Queue is full
|
|
Django-Thread-xQueue: <<event>>
|
|
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: <<event>>
|
|
Django->>Web Browser: <<event>>
|
|
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>
|
|
</div>
|