Я разрабатываю процесс ETL, который использует Durable Functions (v2) для выполнения.Базовый процесс выглядит следующим образом:
- Использование операции для получения списка кодов продуктов, которые необходимо обработать
- Разветвление из основного оркестратора в N суб-оркестраций для объединения нескольких источников данных интеграциив один объект и обновление в Cosmos DB
Основная оркестровка реализована с использованием шаблона экземпляра синглтона, так что одновременно работает только один экземпляр.
Работает нормально, но история выполнения в базовом хранилище таблиц TaskHub значительно увеличивается с каждым выполнением этого процесса, и существует очевидная проблема обслуживания, поскольку этот процесс будет выполняться в час и будет генерироватьмного данных в базовых таблицах TaskHub.
Я изо всех сил пытаюсь найти руководство о том, как сохранить историю выполнения этого процесса, чтобы он не рос слишком сильно.Мне известен API ContinueAsNewAsync()
, но он не очень хорошо вписывается в мой дизайн, потому что он также заставляет процесс запускаться снова.Я не могу найти информацию ни по одному API, который можно использовать для очистки истории выполнения.
Это вопрос ручной очистки таблиц прямо сейчас, скажем, с использованием отдельных функций, запускаемых по таймеру?Это выглядит немного странно / нестабильно, учитывая, что схема таблиц долговременных функций может измениться в любой момент.