Как получить доступ к тегам или использовать их внутри оркестрации или действий в Durable Task Framework (DTFx)?C#

Место общения программистов C#
Anonymous
Как получить доступ к тегам или использовать их внутри оркестрации или действий в Durable Task Framework (DTFx)?

Сообщение Anonymous »

Я работаю с Durable Task Framework (DTFx) с использованием поставщика SQL и передаю метаданные с помощью параметра tags при запуске оркестрации:

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

var tags = new Dictionary
{
["CorrelationId"] = correlationId
};

await taskHubClient.CreateOrchestrationInstanceAsync(
"QuoteReferralOrchestration",
"V1",
instanceId,
input,
tags
);
Вопрос:
Как я могу получить доступ к этим тегам или использовать их внутри:
  • Оркестрация (TaskOrchestration)
  • Activity (TaskActivity)
Из моего тестирования:
  • Теги хранятся в базовом хранилище SQL (таблица OrchestrationInstances)
  • Они доступны через:

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

await orchestrationService.GetOrchestrationStateAsync(instanceId, null);
  • Они недоступны в OrchestrationContext
  • Доступ к ним через SqlOrchestrationService внутри оркестрации не рекомендуется (недетерминированно)
Поскольку оркестровки должны быть детерминированными:
  • Мы не можем безопасно запросить БД изнутри оркестратора.
  • Нет встроенного API, такого как:
  • Существует ли какой-либо поддерживаемый способ доступа к тегам внутри оркестрации или активности?
  • Предназначены ли теги только для внешних запросов/мониторинга?
  • Что такое Рекомендуемый шаблон для передачи данных корреляции в логику оркестрации?
Контекст
Мы пытаемся использовать теги для:
  • отслеживания корреляции
  • ведения журнала
  • отслеживания рабочих процессов между службами

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