Task Workflow ============= Submit Task (Router) -------------------- .. code-block:: python { "MsgType": "MsgTask", "SN": 1, "TaskId": "unique-task-id", "ConvertQProg": "...", "Configure": { "Shot": 1000 } } Receive Acknowledgment (Router) ------------------------------- .. code-block:: python { "MsgType": "MsgTaskAck", "SN": 1, "ErrCode": 0, "ErrInfo": "" } Task Status Update (Publish) ---------------------------- Task statuses are automatically pushed via Publish-Subscribe: **PENDING** (After receiving task): .. code-block:: python { "MsgType": "TaskStatus", "SN": 0, "TaskId": "unique-task-id", "TaskStatus": 1 } **RUNNING** (Processing): .. code-block:: python { "MsgType": "TaskStatus", "SN": 0, "TaskId": "unique-task-id", "TaskStatus": 2 } **SUCCESSED** (Completed): .. code-block:: python { "MsgType": "TaskStatus", "SN": 0, "TaskId": "unique-task-id", "TaskStatus": 5 } Receive Result (Router) ----------------------- .. code-block:: python { "MsgType": "MsgTaskResult", "SN": 1, "TaskId": "unique-task-id", "Key": [["0x0", "0x1"]], "ProbCount": [[500, 500]], "NoteTime": { "CompileTime": 100, "MeasureTime": 2000, "PostProcessTime": 50 } }