Задержанная контрольная точка в ProcessEventsAsync

EventHub-х IEventProcessor Интерфейс имеет следующий метод:

Task ProcessEventsAsync(PartitionContext context, IEnumerable<EventData> messages)

Я хочу постгрегрегировать сообщения, полученные от концентратора событий в TPL.DataFlowпотому что оригинальные партии слишком малы. При этом мне нужно было бы проверять события где-нибудь в конвейере потока данных, и это, очевидно, происходит спустя долгое время после возврата метода.

Q.1: я могу использовать context аргумент после ProcessEventsAsync вернулся? Насколько это безопасно?
В.2: Есть ли лучший способ делать то, что я хочу?

1 ответ

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

Другие вопросы по тегам