用于并行任务执行逻辑的python线程

xeufq47z  于 2021-08-20  发布在  Java
关注(0)|答案(0)|浏览(172)

我正试图为以下情况设计一个解决方案,并希望得到反馈。
脚本:
api调用是对带有某个参数的端点进行的,它返回id。
id用于调用不同的端点以检查状态。它返回json对象。看起来是这样的:

{
 "id": "some_id",
 "1": {
     "status": "in progress",
     "data": "some_value"
 },
 "2": {
     "status": "completed",
     "data": "some_value"
 },
 "n": {
     "status": "some_status",
     "data": "some_value"
 }}

现在,任务是1,2,N它会随着后端的数据准备就绪而更新,并将状态从“进行中”更改为“完成”。然后,我可以得到数据。
我可以等到所有的状态都完成,但这需要很多时间,因为我可以进行不需要其他数据的计算。
因此,我得出以下结论。

import time

condition = True
count = 0
tasks_num = N

while condition:
    request = call api for status
    if request.data['1']['status'] == 'completed':
        data1 = task1(request.data['1']['data'])
        count += 1
    if request.data['2']['status'] == 'completed':
        data2 = task2(request.data['2']['data'])
        count += 1
    if request.data['N']['status'] == 'completed':
        dataN = taskN(request.data['N']['data'])
        count += 1

    sleep(20)    

    if count == N:
        condition = False

想获得逻辑方面的反馈吗?
任务#()功能需要看起来像什么,这样它才能创建一个线程并在循环继续且不停止程序时执行任务。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题