Task Workflow

Submit Task (Router)

{
    "MsgType": "MsgTask",
    "SN": 1,
    "TaskId": "unique-task-id",
    "ConvertQProg": "...",
    "Configure": {
        "Shot": 1000
    }
}

Receive Acknowledgment (Router)

{
    "MsgType": "MsgTaskAck",
    "SN": 1,
    "ErrCode": 0,
    "ErrInfo": ""
}

Task Status Update (Publish)

Task statuses are automatically pushed via Publish-Subscribe:

PENDING (After receiving task):

{
    "MsgType": "TaskStatus",
    "SN": 0,
    "TaskId": "unique-task-id",
    "TaskStatus": 1
}

RUNNING (Processing):

{
    "MsgType": "TaskStatus",
    "SN": 0,
    "TaskId": "unique-task-id",
    "TaskStatus": 2
}

SUCCESSED (Completed):

{
    "MsgType": "TaskStatus",
    "SN": 0,
    "TaskId": "unique-task-id",
    "TaskStatus": 5
}

Receive Result (Router)

{
    "MsgType": "MsgTaskResult",
    "SN": 1,
    "TaskId": "unique-task-id",
    "Key": [["0x0", "0x1"]],
    "ProbCount": [[500, 500]],
    "NoteTime": {
        "CompileTime": 100,
        "MeasureTime": 2000,
        "PostProcessTime": 50
    }
}