Датчик воздушного потока в режиме перепланирования: лучший способ сохранить состояние счетчика между касаниями? - PullRequest
0 голосов
/ 11 апреля 2019

Я хочу сохранить состояние счетчика между касаниями в датчике длительной работы в режиме перепланирования.

Проблема:

Я ожидаю, что файлы будут загружены в путь GCS, но у них нет сигнала об успешном завершении, когда все файлы поступили.В качестве эвристики для определения окончания сеанса загрузки я буду считать данные полными, если прошло n * grace_period минут без изменения количества файлов с этим префиксом.

Подход:

Я пытаюсь реализовать пользовательский датчик для достижения следующего: - Ткните каждые n минут, чтобы увидеть, сколько файлов в GCS с определенным префиксом, и сохраните это значение в num_files.

  • Успешно, если consecutive_same_pokes > grace_period and num_files > min_files.

  • SLA пропустить, если не удастся через n * grace_period + 1 минут.

  • Продолжать тыкать до deadline и добиться успеха, если num_files > min_files.В этом случае deadline будет через 24 часа после времени запуска, следовательно, для датчика необходим режим переназначения.

Основной вопрос:

Какова лучшая практикахранить состояние для num_files и consecutive_same_pokes?

  • Переменные: Похоже, что мы будем обновлять это состояние слишком часто и только для чтения этого состояния из task_instance для этого датчика.

  • XComms: я не уверен, могу ли я использовать XComms для внутризадачной связи, так как она предназначена для межзадачной связи.

  • Как свойство моего датчика: я не уверен, что мое состояниебудет сохраняться во всех покер, если хранится в MyCustomSensor.num_files и MyCustomSensor.consecutive_same_pokes.Приведет ли режим перепланирования к повторной инициализации моей задачи каждый раз, когда стираются счетчики, или он просто перепланирует poke?

...