32 lines
974 B
Python
32 lines
974 B
Python
|
|
import time
|
|||
|
|
|
|||
|
|
|
|||
|
|
def wait_for_job_completion(client, batch_job_id, timeout=6000, interval=10):
|
|||
|
|
"""
|
|||
|
|
等待批处理作业完成。
|
|||
|
|
|
|||
|
|
参数:
|
|||
|
|
- client: 批处理作业客户端对象
|
|||
|
|
- batch_job_id: 批处理作业的ID
|
|||
|
|
- timeout: 最大等待时间(秒)
|
|||
|
|
- interval: 检查状态的间隔时间(秒)
|
|||
|
|
|
|||
|
|
返回:
|
|||
|
|
- True 如果作业完成,False 如果超时
|
|||
|
|
"""
|
|||
|
|
start_time = time.time()
|
|||
|
|
while time.time() - start_time < timeout:
|
|||
|
|
batch_job = client.batches.retrieve(batch_job_id)
|
|||
|
|
if batch_job.status == 'completed':
|
|||
|
|
print("Batch job completed successfully.")
|
|||
|
|
return True
|
|||
|
|
elif batch_job.status == 'failed':
|
|||
|
|
print("Batch job failed.")
|
|||
|
|
return False
|
|||
|
|
else:
|
|||
|
|
print(f"Current status: {batch_job.status}. Waiting for completion...")
|
|||
|
|
time.sleep(interval)
|
|||
|
|
|
|||
|
|
print("Timeout reached, job did not complete in time.")
|
|||
|
|
return False
|