コード例 #1
0
            public async Task <IDisposable> SubscribeAsync(IPartitionObserver <T> observer)
            {
                if (!this.observers.Contains(observer))
                {
                    this.observers.Add(observer);

                    foreach (var lease in this.partitionManager.currentlyOwnedShards.Values)
                    {
                        try
                        {
                            await observer.OnPartitionAcquiredAsync(lease);
                        }
                        catch (Exception ex)
                        {
                            // Eat any exceptions during notification of observers
                            AnalyticsEventSource.Log.PartitionManagerError(
                                partitionManager.accountName,
                                partitionManager.taskHub,
                                partitionManager.workerName,
                                lease.PartitionId,
                                ex,
                                Utils.ExtensionVersion);
                        }
                    }
                }

                return(new Unsubscriber(this.observers, observer));
            }
コード例 #2
0
            public async Task <IDisposable> SubscribeAsync(IPartitionObserver <T> observer)
            {
                if (!this.observers.Contains(observer))
                {
                    this.observers.Add(observer);

                    foreach (var lease in this.partitionManager.currentlyOwnedPartitions.Values)
                    {
                        try
                        {
                            await observer.OnPartitionAcquiredAsync(lease);
                        }
                        catch (Exception ex)
                        {
                            // Eat any exceptions during notification of observers
                            TraceLog.Exception(ex);
                        }
                    }
                }

                return(new Unsubscriber(this.observers, observer));
            }
コード例 #3
0
 internal Unsubscriber(List <IPartitionObserver <T> > observers, IPartitionObserver <T> observer)
 {
     this._observers = observers;
     this._observer  = observer;
 }
コード例 #4
0
 public Task <IDisposable> SubscribeAsync(IPartitionObserver <T> observer)
 {
     return(this.partitionObserverManager.SubscribeAsync(observer));
 }