Я пытаюсь употреблять сообщения из темы Kafka, используя Azure долговечную функцию, и по мере появления новых сообщений я хочу вызвать функцию активности для обработки сообщений. Проблема здесь заключается в том, что функция обратного вызова не способна получить доступ к контексту и другим локальным переменным, которые необходимы для вызова функции активности./* the orchestrator is invoked by a timer trigger */
/* using kafka javascript SDK (@confluentinc/kafka-javascript) to create a consumer */
const kafkaConsumerOrchestratorName = 'kafka_consumer_orchestrator';
const kafkaConsumerActivityName = 'kafka_consumer_activity';
df.app.orchestration(kafkaConsumerOrchestratorName, function* (context) {
yield kafkaService.consumer.run({
eachMessage: async ({ topic, partition, message }) => {
/* context not accessible here */
yield context.df.callActivity(kafkaConsumerActivityName, { topic, partition, message });
}
});
});
df.app.activity(kafkaConsumerActivityName, {
handler: async (input, context) => {
/* process messages */
console.log(input);
}
});
Подробнее здесь: https://stackoverflow.com/questions/795 ... k-function