Возможно ли запустить задачу воздушного потока только тогда, когда происходит конкретное событие, например, событие сбрасывания файла в определенную корзину S3. Нечто похожее на события AWS Lambda
Существует S3KeySensor
, но я не знаю, выполняет ли он то, что я хочу (запускать задачу только при возникновении события)
Вот примерсделайте вопрос более понятным:
У меня есть сенсорный объект следующим образом
sensor = S3KeySensor(
task_id='run_on_every_file_drop',
bucket_key='file-to-watch-*',
wildcard_match=True,
bucket_name='my-sensor-bucket',
timeout=18*60*60,
poke_interval=120,
dag=dag
)
При использовании вышеуказанного сенсорного объекта поведение воздушного потока для сенсорной задачи выглядит следующим образом:
- Запускает задачу, если уже есть имя объекта, совпадающее с подстановочным знаком в сегменте S3
my-sensor-bucket
даже до переключения DAG ON
в пользовательском интерфейсе администратора воздушного потока (я не хочу запускать задачу из-за присутствияиз прошлых объектов s3) - После однократного запуска задача сенсора не будет запускаться снова при каждом новом отбрасывании файлового объекта S3 (я хочу запускать задачу сенсора и последующие задачи в группе обеспечения доступности баз данных каждый раз, когда естьновый объект файла S3, помещенный в корзину
my-sensor-bucket
) - Если вы настроите планировщик, задачи будут выполняться по расписанию, но не по событию. Так что в этом случае планировщик не подходит
Я пытаюсь понять, могут ли задачи в потоке воздуха выполняться только на основе расписания (например, задания cron) или датчиков (только один раз на основе критериев восприятия)) или он не может быть настроен как конвейер событий (что-то похожее на AWS Lambda)