public void Publish(IEnumerable <JobInfo> jobs) { using (var scope = ServiceFactory.GetRequiredService <IJobServiceScopeFactory>().CreateScope()) { scope.GetRequiredService <IJobPublisher>().Publish(jobs); } }
public WorkerCoordinator(IJobServiceFactory serviceFactory, IJobLogger <WorkerCoordinator> logger = null) { ServiceScopeFactory = serviceFactory.GetRequiredService <IJobServiceScopeFactory>(); ServiceScope = ServiceScopeFactory.CreateScope(); _settings = ServiceScope.GetRequiredService <MassiveJobsSettings>(); _reconnectTimer = ServiceScope.GetRequiredService <ITimer>(); _reconnectTimer.TimeElapsed += Reconnect; Workers = new List <IWorker>(); Logger = logger ?? ServiceScope.GetRequiredService <IJobLogger <WorkerCoordinator> >(); MessageConsumer = ServiceScope.GetRequiredService <IMessageConsumer>(); MessageConsumer.Disconnected += MessageBrokerDisconnected; }
public static TService GetRequiredService <TService>(this IJobServiceFactory factory) { return((TService)factory.GetRequiredService(typeof(TService))); }