@startuml
actor client
box "Internal Server"
participant service
queue queue
participant worker
end box
client -> service : request
activate service
service -> queue : enqueue
queue -> worker : dequeue
activate worker
worker --> service : result
deactivate worker
service --> client : response
deactivate service
@enduml
@startuml
actor client
box "Internal Server"
participant service
queue queue
participant worker
end box
client -> service : request
activate service
service -> queue : enqueue
service --> client : response
deactivate service
queue -> worker : dequeue
activate worker
worker --> service : result
deactivate worker
@enduml
@startuml
actor client
box "Internal Server"
participant service
queue queue
participant worker
end box
client -> service : request
activate service
service -> queue : enqueue
service --> client : response with job ID
deactivate service
queue -> worker : dequeue
activate worker
alt case1. server can psuh data to client
worker --> service : result
deactivate worker
activate service
service --> client : result
deactivate service
else case2. server can't push data to client
loop until job is done
client -> service : job is done?
activate client
end
worker --> service : result
deactivate worker
activate service
service --> client : job is done.
deactivate client
deactivate service
end
@enduml