public static IDirectoryClient Instance(Stage stage, IServiceDiscoveryInterest interest, Group directoryPublisherGroup) => Instance( stage, interest, directoryPublisherGroup, DefaultMaxMessageSize, DefaultProcessingInterval, DefaultProcessingTimeout);
public static IDirectoryClient Instance( Stage stage, IServiceDiscoveryInterest interest, Group directoryPublisherGroup, int maxMessageSize, long processingInterval, int processingTimeout) => stage.ActorFor <IDirectoryClient>( () => new DirectoryClientActor(interest, directoryPublisherGroup, maxMessageSize, processingInterval, processingTimeout), ClientName);
public static IDirectoryClient Instance( Stage stage, IServiceDiscoveryInterest interest, Group directoryPublisherGroup, int maxMessageSize, long processingInterval, int processingTimeout) { var definition = Definition.Has <DirectoryClientActor>( Definition.Parameters(interest, directoryPublisherGroup, maxMessageSize, processingInterval, processingTimeout), ClientName); return(stage.ActorFor <IDirectoryClient>(definition)); }
public DirectoryClientActor( IServiceDiscoveryInterest interest, Group directoryPublisherGroup, int maxMessageSize, long processingInterval, int processingTimeout) { _interest = interest; _buffer = new MemoryStream(maxMessageSize); _subscriber = new MulticastSubscriber( DirectoryClientFactory.ClientName, directoryPublisherGroup, maxMessageSize, processingTimeout, Logger); _subscriber.OpenFor(SelfAs <IChannelReaderConsumer>()); _cancellable = Stage.Scheduler.Schedule( SelfAs <IScheduled <object?> >(), null, TimeSpan.FromMilliseconds(1000L), TimeSpan.FromMilliseconds(processingInterval)); }