예제 #1
0
 internal Dispatcher(
     OrleansTaskScheduler scheduler,
     MessageCenter transport,
     Catalog catalog,
     IOptionsMonitor <SiloMessagingOptions> messagingOptions,
     PlacementService placementService,
     ILocalGrainDirectory localGrainDirectory,
     GrainLocator grainLocator,
     ActivationCollector activationCollector,
     MessageFactory messageFactory,
     CompatibilityDirectorManager compatibilityDirectorManager,
     ILoggerFactory loggerFactory,
     RuntimeMessagingTrace messagingTrace,
     GrainVersionManifest versionManifest,
     IAsyncTimerFactory asyncTimerFactory,
     IncomingRequestMonitor incomingRequestMonitor)
 {
     _activationWorkloadMonitor = incomingRequestMonitor;
     this.scheduler             = scheduler;
     this.catalog                      = catalog;
     Transport                         = transport;
     this.messagingOptions             = messagingOptions.CurrentValue;
     this.invokeWorkItemLogger         = loggerFactory.CreateLogger <InvokeWorkItem>();
     this.placementService             = placementService;
     this.localGrainDirectory          = localGrainDirectory;
     this.grainLocator                 = grainLocator;
     this.activationCollector          = activationCollector;
     this.messageFactory               = messageFactory;
     this.compatibilityDirectorManager = compatibilityDirectorManager;
     this.messagingTrace               = messagingTrace;
     this._versionManifest             = versionManifest;
     logger = loggerFactory.CreateLogger <Dispatcher>();
 }
예제 #2
0
 /// <summary>
 /// Create a <see cref="PlacementService"/> instance.
 /// </summary>
 public PlacementService(
     IOptionsMonitor <SiloMessagingOptions> siloMessagingOptions,
     ILocalSiloDetails localSiloDetails,
     ISiloStatusOracle siloStatusOracle,
     ILogger <PlacementService> logger,
     GrainLocator grainLocator,
     GrainVersionManifest grainInterfaceVersions,
     CachedVersionSelectorManager versionSelectorManager,
     PlacementDirectorResolver directorResolver,
     PlacementStrategyResolver strategyResolver)
 {
     LocalSilo                         = localSiloDetails.SiloAddress;
     _strategyResolver                 = strategyResolver;
     _directorResolver                 = directorResolver;
     _logger                           = logger;
     _grainLocator                     = grainLocator;
     _grainInterfaceVersions           = grainInterfaceVersions;
     _versionSelectorManager           = versionSelectorManager;
     _siloStatusOracle                 = siloStatusOracle;
     _assumeHomogeneousSilosForTesting = siloMessagingOptions.CurrentValue.AssumeHomogenousSilosForTesting;
     _workers                          = new PlacementWorker[PlacementWorkerCount];
     for (var i = 0; i < PlacementWorkerCount; i++)
     {
         _workers[i] = new(this);
     }
 }
 public ActivationMessageScheduler(
     Catalog catalog,
     Dispatcher dispatcher,
     GrainVersionManifest versionManifest,
     RuntimeMessagingTrace messagingTrace,
     ActivationCollector activationCollector,
     OrleansTaskScheduler scheduler,
     CompatibilityDirectorManager compatibilityDirectorManager,
     IncomingRequestMonitor incomingRequestMonitor)
 {
     _incomingRequestMonitor = incomingRequestMonitor;
     _catalog                      = catalog;
     _versionManifest              = versionManifest;
     _messagingTrace               = messagingTrace;
     _activationCollector          = activationCollector;
     _scheduler                    = scheduler;
     _compatibilityDirectorManager = compatibilityDirectorManager;
     _dispatcher                   = dispatcher;
 }
예제 #4
0
 public InternalGrainRuntime(
     MessageCenter messageCenter,
     Catalog catalog,
     GrainVersionManifest versionManifest,
     RuntimeMessagingTrace messagingTrace,
     GrainLocator grainLocator,
     CompatibilityDirectorManager compatibilityDirectorManager,
     IOptions <GrainCollectionOptions> collectionOptions,
     ILocalGrainDirectory localGrainDirectory,
     IActivationWorkingSet activationWorkingSet)
 {
     MessageCenter                = messageCenter;
     Catalog                      = catalog;
     RuntimeClient                = catalog.RuntimeClient;
     GrainVersionManifest         = versionManifest;
     MessagingTrace               = messagingTrace;
     CompatibilityDirectorManager = compatibilityDirectorManager;
     GrainLocator                 = grainLocator;
     CollectionOptions            = collectionOptions;
     LocalGrainDirectory          = localGrainDirectory;
     ActivationWorkingSet         = activationWorkingSet;
 }