Jobs phase2
sequenceDiagram
actor User as User
participant Controller as "Controller API"
participant Queue as "Redis"
participant JobProcessor as JobProcessor
participant JobWorker as JobWorker
participant Device as "Network Device"
User ->> Controller: Submit automation request
Controller ->> Queue: Create and enqueue preprocessing job
Controller -->> User: Return JobID
JobProcessor ->> Queue: Fetch next preprocessing job
activate JobProcessor
JobProcessor ->> JobProcessor: Pre-process request (validate, transform)
JobProcessor ->> Queue: Enqueue device job
deactivate JobProcessor
JobWorker ->> Queue: Fetch next device job
activate JobWorker
JobWorker ->> Device: Execute commands / collect output
Device -->> JobWorker: Return raw output
JobWorker ->> Queue: Update job state to "needs post-processing"
deactivate JobWorker
JobProcessor ->> Queue: Fetch next post-processing job
activate JobProcessor
JobProcessor ->> JobProcessor: Post-process results (parse, transform)
JobProcessor ->> Queue: Mark job complete with processed results
deactivate JobProcessor
User ->> Controller: Poll for job status/result (using JobID)
Controller ->> Queue: fetch completed job
Controller -->> User: Return processed job result