У меня есть следующий скрипт в Python, каждые 30 секунд проверяет все задачи в списке, когда задача выполнена (СБОЙ, ОТМЕНА или ЗАВЕРШЕНА), задача удаляется из исходной задачи, а затем будет отслеживать опять другие задачи. Код работает хорошо таким образом.
Проблема в том, что я не уверен, что каждая итерация в то время как l oop создает новый список, потому что весь процесс может занять несколько часов, поэтому я не хочу создавать ненужные данные в памяти.
def download():
while tasks:
for task in tasks[:]:
success = 0
file_name = task[1]
task_index = tasks.index(task)
task_state = ee.data.getTaskStatus(task[0])[0]['state']
print(task, task_state)
if task_state == FAILED:
tasks.remove(tasks[task_index])
elif task_state in [CANCEL_REQUESTED, CANCELLED]:
tasks.remove(tasks[task_index])
elif task_state == COMPLETED:
tasks.remove(tasks[task_index])
success = 1
if success == 1:
do_something()
if tasks:
time.sleep(30)
else:
print('Done!')
download()