Запись в LocalTarget - это atomi c. За кулисами Луги сначала записывает во временный файл, а затем перемещает временный файл к вашей реальной цели. Найдите atomic_file в исходном коде
Я не понимаю части атомарности, так как я надеюсь, что Луиджи просто дождется завершения задачи записи файла, прежде чем указывать задача завершена.
Если вы используете локальный планировщик для выполнения вашей задачи (--local-scheduler
) и у вас только один рабочий, тогда все будет в порядке.
Это становится проблемой если у вас есть несколько рабочих, работающих над одними и теми же задачами, и они пытаются определить, какие задачи теперь доступны для выполнения.
В вашем примере один рабочий мог бы попытаться проверить, готов ли grabData
к запуску, и посмотреть что файл доступен, пока другой работник находится в процессе записи readSQLtoPickle
в файл.