Я слушаю Reliable Services Notifications
, чтобы сделать некоторую фоновую работу. Ожидается, что: всякий раз, когда добавляется новый IReliableConcurrentQueue
, он должен запускать поток poller/dequeuer
для обработки элементов, присутствующих в очереди.
Чтобы добиться этого, я прослушал событие NotifyStateManagerChangedAction.Add
и внутри обработчика событий создал поток опроса, который запустит очередь в только что добавленной очереди.
- Мое понимание этого события (
NotifyStateManagerChangedAction.Add
) таково, что всякий раз, когда новый IReliableState
(в моем случае его IReliableConcurrentQueue
) добавляется к StateManager
, это событие срабатывает. И это событие не вызывается всякий раз, когда новый элемент помещается в уже существующий IReliableConcurrentQueue
. Это правильно?
NotifyStateManagerChangedAction.Add
срабатывает при запуске службы. В идеале это не должно быть. Почему это срабатывает?
- В потоке опроса он выдает исключение "
State Manager is currently not readable
", когда я пытаюсь получить очередь из StateManager
. Это потому, что событие инициировано на StateManager
, а обработчик события (поток опроса) пытается получить доступ к StateManager
, на котором запущено событие? Это тупик?
Ссылка: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-services-notifications