Надежные сервисные уведомления - StateManagerChanged Добавить событие, запускаемое при запуске сервиса - PullRequest
0 голосов
/ 06 марта 2019

Я слушаю Reliable Services Notifications, чтобы сделать некоторую фоновую работу. Ожидается, что: всякий раз, когда добавляется новый IReliableConcurrentQueue, он должен запускать поток poller/dequeuer для обработки элементов, присутствующих в очереди.

Чтобы добиться этого, я прослушал событие NotifyStateManagerChangedAction.Add и внутри обработчика событий создал поток опроса, который запустит очередь в только что добавленной очереди.

  1. Мое понимание этого события (NotifyStateManagerChangedAction.Add) таково, что всякий раз, когда новый IReliableState (в моем случае его IReliableConcurrentQueue) добавляется к StateManager, это событие срабатывает. И это событие не вызывается всякий раз, когда новый элемент помещается в уже существующий IReliableConcurrentQueue. Это правильно?
  2. NotifyStateManagerChangedAction.Add срабатывает при запуске службы. В идеале это не должно быть. Почему это срабатывает?
  3. В потоке опроса он выдает исключение "State Manager is currently not readable", когда я пытаюсь получить очередь из StateManager. Это потому, что событие инициировано на StateManager, а обработчик события (поток опроса) пытается получить доступ к StateManager, на котором запущено событие? Это тупик?

Ссылка: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-services-notifications

...