我正试图为以下情况设计一个解决方案,并希望得到反馈。
脚本:
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
想获得逻辑方面的反馈吗?
任务#()功能需要看起来像什么,这样它才能创建一个线程并在循环继续且不停止程序时执行任务。
暂无答案!
目前还没有任何答案,快来回答吧!