public ActorManager(IActorFactory actorFactory, IProvider persistenceProvider, IOptions <ActorSettings> actorSettings, ITracer tracer, ILoggerFactory loggerFactory) { _actorFactory = actorFactory; var settings = actorSettings.Value; var logger = loggerFactory.CreateLogger <ActorManager>(); // Configure OpenTracing Context = new RootContext(new MessageHeader(), OpenTracingExtensions.OpenTracingSenderMiddleware()) .WithOpenTracing(); _actorFactory.RegisterActor(new RequestActor(this, persistenceProvider, TimeSpan.FromMilliseconds(settings.ChildActorTimeoutInMilliseconds), loggerFactory, tracer), ActorNames.RequestActor); EventStream.Instance.Subscribe <DeadLetterEvent>(dl => { logger.LogWarning($"DeadLetter from {dl.Sender} to {dl.Pid} : {dl.Message?.GetType().Name} = '{dl.Message?.ToString()}'"); }); }
public void RegisterChildActor <T>(T actor, string id, IContext parent) where T : IActor { _actorFactory.RegisterActor(actor, id, null, parent); }