# 1. Client submits tasks
The client sends a request to submit the task to the background server. After the background server processes the task, it inserts the task into the database. After the insertion into the database is successful, the task is sent to the message queue. After the sending is successful, the task id is returned to the client.
# 2. Synthesis server work
The transcoding server periodically pulls the corresponding tasks from the message queue, and then calls the local executable program for processing. The executable program continuously sends the task progress to the transcoding server, and the transcoding server updates the task progress and task results to the database.
# 3. Task progress query
The client sends a request to the background server through the task id polling, and the background server obtains the task progress and results from the database and returns it to the client.