Last active
October 23, 2015 19:35
-
-
Save bmbouter/2c8b4d8afd33876c655d to your computer and use it in GitHub Desktop.
Pulp Asynchronous Request
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| @startuml | |
| title Asynchronous Task Example (sync) | |
| actor "API Client" as client | |
| autonumber | |
| client -> httpd: sync repo | |
| httpd -> MongoDB: create TaskStatus record | |
| httpd -> "resource_manager Queue" as rmQueue: dispatch Task to Resource Manager Queue | |
| httpd -> client: TaskStatus info including UUID | |
| ...Wait for Messages to be handled FCFS by the Resource Manager (potential delay)... | |
| rmQueue -> "pulp_resource_manager Process" as pulp_resource_manager: deliver message | |
| pulp_resource_manager -> "worker1 dedicated Queue" as worker1_queue: dispatch message | |
| ...Wait for Messages to be handled FCFS by worker1 (potential delay)... | |
| worker1_queue -> worker1: deliver message | |
| worker1 -> MongoDB: marks TaskStatus as "Started" | |
| activate worker1 | |
| worker1 -> MongoDB: updates progress as it happens | |
| note right: perform sync | |
| worker1 -> MongoDB: marks TaskStatus as "Finished" | |
| deactivate worker1 | |
| == Asynchronous Polling from Client Anytime == | |
| autonumber 1 | |
| group TaskStatus Poll | |
| client -> httpd: query for TaskStatus by UUID | |
| httpd -> MongoDB: query for TaskStatus by UUID | |
| MongoDB -> httpd: TaskStatus record | |
| httpd -> client: TaskStatus info | |
| end | |
| @enduml |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment