1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
@startuml
hide footbox
== Synchronous ==
Client -> Request: Create
activate Request
Request --> Client
Client -> Request: waitForFinished
Request -> FileService: startRequest
FileService --> Request: return requestId
FileService -> Queue: enqueue
Queue --> FileService
Worker -> Queue: takeNext
Queue --> Worker: job
activate Worker
Worker -> Worker: Process File
Worker -> FileService: requestData(id, data)
FileService -->>o Request: requestData(id, data)
Worker -> FileService: requestFinished(id)
FileService -->>o Request: requestFinished(id)
deactivate Worker
Request --> Client: data
destroy Request
== Asynchronous ==
Client -> Request: Create
activate Request
Request --> Client
Client -> Request: start
Request --> Client
Request -> FileService: startRequest
FileService --> Request: return requestId
FileService -> Queue: enqueue
Queue --> FileService
Worker -> Queue: takeNext
Queue --> Worker: job
activate Worker
Worker -> Worker: Process File
Worker -> FileService: requestData(id, data)
FileService -->>o Request: requestData(id, data)
Request -->>o Client: requestData(request, data)
Worker -> FileService: requestFinished(id)
FileService -->>o Request: requestFinished(id)
deactivate Worker
Request -->>o Client: requestFinished(request)
destroy Request
@enduml
|