Как постоянно обновлять целевой файл с помощью Луиджи?Python

Программы на Python
Ответить
Anonymous
 Как постоянно обновлять целевой файл с помощью Луиджи?

Сообщение Anonymous »

Недавно я начал экспериментировать с Luigi и хотел бы узнать, как использовать его для непрерывного добавления новых данных в существующий целевой файл.

Представьте, что я каждую минуту проверяю API для получения новых данных. Поскольку Задача запускается только в том случае, если Цель еще не существует, наивным подходом было бы параметризовать выходной файл по текущей дате и времени. Вот простой пример:

Код: Выделить всё

import luigi
import datetime

class data_download(luigi.Task):
date = luigi.DateParameter(default = datetime.datetime.now())

def requires(self):
return []

def output(self):
return luigi.LocalTarget("data_test_%s.json" % self.date.strftime("%Y-%m-%d_%H:%M"))

def run(self):
data = download_data()
with self.output().open('w') as out_file:
out_file.write(data + '\n')

if __name__ == '__main__':
luigi.run()
Если я запланирую выполнение этой задачи каждую минуту, она будет выполняться, поскольку целевой файл текущего времени еще не существует. Но он создает 60 файлов в минуту. Вместо этого я хотел бы убедиться, что все новые данные в конечном итоге окажутся в одном и том же файле. Каким будет масштабируемый подход для достижения этой цели? Любые идеи, предложения приветствуются!

Подробнее здесь: https://stackoverflow.com/questions/429 ... sing-luigi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»