public Market() { Vehicles = new List <Vehicle>(); DispatcherSettings = new DispatcherSettings(); MarketTariff = new Tariff(); Region = new MapRegion(); }
private static DispatcherSettings ConfigureDispatcherFor(string dispatcherId) { var dispatcherSettings = new DispatcherSettings { DispatcherId = DispatcherId.FromString(dispatcherId), DispatcherLifeSpan = new DispatcherLifeSpan { Mode = DispatcherLifeSpanMode.UntilTimedOut, Timeout = TimeSpan.FromSeconds(30) }, IntervalForCheckingUnfinishedJobs = TimeSpan.FromMilliseconds(800), MaximumNumberOfProcessingJobs = 1, }; var jobConfiguration = new JobConfiguration { JobAndWorkerType = { JobType = RuntimeType.From(typeof (SampleJob)), WorkerType = RuntimeType.From(typeof (SampleWorker)) }, RequestMaxAttempts = 3, RequestTimeout = TimeSpan.FromSeconds(10) }; dispatcherSettings.JobConfigurations.Add(jobConfiguration); return dispatcherSettings; }
public void Initialize(DispatcherSettings settings) { try { if (!DependencyResolver.IsInitialized) throw new InvalidOperationException("The DependencyResolver must be initialized before initializing the Dispatcher!"); settings.Validate(); Repository = new DispatcherRepository(settings); Repository.SubscribeToPoisonPill(TakePoisonPill); Repository.SubscribeToPendingJobs(ReceiveJob); Repository.StartSendingLifeSignal(); StartCheckingIfDispatcherShouldBeKeptAliveThatMuchTimeAfterInitialized(); ConfirmInitialization(); IsDisposed = false; } catch (Exception e) { Log.Error(e, "Could not initialize the Dispatcher."); throw new InvalidOperationException("Could not initialize the Dispatcher.", e); } }
public void TestWriteToXmlAndReadFromXmlOnDispatcherSettings() { DependencyResolver.Reset(); DependencyResolver.Initialize(); var dispatcherSettings = DummyDispatcherSettings(); var firstWrite = new XmlDocument(); firstWrite.AppendChild(firstWrite.CreateElement("DispatcherSettings")); dispatcherSettings.WriteTo(firstWrite.DocumentElement); var anotherDispatcherSettings = new DispatcherSettings(); anotherDispatcherSettings.ReadFrom(firstWrite.DocumentElement); var secondWrite = new XmlDocument(); secondWrite.AppendChild(secondWrite.CreateElement("DispatcherSettings")); anotherDispatcherSettings.WriteTo(secondWrite.DocumentElement); var firstString = new StringBuilder(); var firstText = XmlWriter.Create(firstString); firstWrite.Save(firstText); var secondString = new StringBuilder(); var secondText = XmlWriter.Create(secondString); secondWrite.Save(secondText); secondString.ToString().Should().BeEquivalentTo(firstString.ToString()); }
public DispatcherRepository(DispatcherSettings settings) { Settings = settings; SubscriptionBus = DependencyResolver.Get<ISubscriptionBus>(); PublishingBus = DependencyResolver.Get<IPublishingBus>(); ReceivingBus = DependencyResolver.Get<IReceivingBus>(); RequestBus = DependencyResolver.Get<IRequestBus>(); SendingBus = DependencyResolver.Get<ISendingBus>(); ResponseBus = DependencyResolver.Get<IResponseBus>(); }
private static DispatcherSettings DummyDispatcherSettings() { var dispatcherSettings = new DispatcherSettings { DispatcherId = DispatcherId.FromString("MyDispatcherId"), IntervalForCheckingUnfinishedJobs = TimeSpan.FromMilliseconds(999), MaximumNumberOfProcessingJobs = 9 }; dispatcherSettings.JobConfigurations.Add(JobConfigurationTests.DummyJobConfiguration()); dispatcherSettings.JobConfigurations.Add(JobConfigurationTests.DummyJobConfiguration()); dispatcherSettings.JobConfigurations.Add(JobConfigurationTests.DummyJobConfiguration()); return dispatcherSettings; }
protected virtual void LaunchComputationalUnit(DispatcherSettings settings) { var dispatcherSettingsFileName = Path.GetTempFileName(); using (var stream = new FileStream(dispatcherSettingsFileName, FileMode.Create, FileAccess.Write)) { settings.SaveTo(stream); } var showConsoleWindow = Configuration.ConfigurationFiles.Settings.ReactiveServices.ShowConsoleWindow; new Process().Start( ComputationalUnitExeName, ComputationalUnitArgumentsFor(dispatcherSettingsFileName), showConsoleWindow, settings.RequireAdministratorPriviledges ); }
public static DispatcherSettings Build() { var settings = new DispatcherSettings(); var configuration = new JobConfiguration { JobAndWorkerType = { JobType = RuntimeType.From(typeof (DummyJob)), WorkerType = RuntimeType.From(typeof (DummyWorker)) }, RequestMaxAttempts = 3, RequestTimeout = TimeSpan.FromSeconds(10) }; settings.JobConfigurations.Add(configuration); settings.IntervalForCheckingUnfinishedJobs = TimeSpan.FromMilliseconds(800); return settings; }
private static void Load(string settingsFileName) { var settings = new DispatcherSettings(); try { //System.Threading.Thread.Sleep(3000);//DEBUG if (File.Exists(settingsFileName)) { using (var stream = new FileStream(settingsFileName, FileMode.Open, FileAccess.Read, FileShare.Read)) settings.LoadFrom(stream); } else { var errorMessage = String.Format("Invalid script file: {0}", settingsFileName); Log.Info(errorMessage); Console.WriteLine(errorMessage); return; } settings.Validate(); Dispatcher = new Dispatcher(); Dispatcher.Disposed += (s, e) => { Environment.Exit(0); }; Dispatcher.Initialize(settings); } catch (Exception ex) { var errorMessage = String.Format("Could not load Computational Unit for {0}!", settings.DispatcherId); Log.Error(ex, errorMessage); Console.WriteLine(errorMessage); Environment.Exit(0); } }
public CompanyMarketSettingsResponse() { DispatcherSettings = new DispatcherSettings(); }
internal void ConfigureBaseSettingsForMultipleDispatchers(int numberOfDispatchers) { for (var i = 0; i < numberOfDispatchers; i++) { var settings = new DispatcherSettings { //DispatcherId = DispatcherId.FromString("Dispatcher" + i.ToString("00")), DispatcherId = DispatcherId.FromString(String.Format("WorkDispatcher_{0}_{1}", i, Guid.NewGuid())), IntervalForCheckingUnfinishedJobs = TimeSpan.FromMilliseconds(800), MaximumNumberOfProcessingJobs = 1 }; ListOfSettingsForMultipleDispatchers.Add(settings); } }
internal void ConfigureConnectionsForAnotherWorkDispatcher() { AnotherSettings = new DispatcherSettings { DispatcherId = DispatcherId.FromString(String.Format("AnotherWorkDispatcher_{0}", Guid.NewGuid())), IntervalForCheckingUnfinishedJobs = TimeSpan.FromMilliseconds(800), MaximumNumberOfProcessingJobs = 10 }; DeleteQueuesAndExchanges(); }
public void Launch(DispatcherSettings settings) { RegisterLaunchRequestFor(settings.DispatcherId); LaunchComputationalUnit(settings); }
protected override void LaunchComputationalUnit(DispatcherSettings settings) { var dispatcher = new Dispatcher(); dispatcher.Initialize(settings); /* * Atention: * These dispatcher continue to live after the InProcessDispatcherLauncher is disposed * They will be disposed only after they receive a poison pill */ }
public DispatcherSettings AddDispatcherConfiguration(string dispatcherId) { var dispatcherSettings = new DispatcherSettings { DispatcherId = DispatcherId.FromString(dispatcherId) }; DispatcherSettings.Add(dispatcherSettings); return dispatcherSettings; }
public void ReadFrom(XmlElement bootstrapSettingsElement) { //LaunchTimeout if (bootstrapSettingsElement.HasAttribute("LaunchTimeout")) { int launchTimeout; LaunchTimeout = Int32.TryParse(bootstrapSettingsElement.GetAttribute("LaunchTimeout"), out launchTimeout) ? TimeSpan.FromMilliseconds(launchTimeout) : TimeSpan.FromSeconds(30); } //DispatcherSettings var dispatchersElements = bootstrapSettingsElement.GetElementsByTagName("Dispatchers")[0].ChildNodes; foreach (XmlElement dispatcherSettingsElement in dispatchersElements) { var dispatcherSettings = new DispatcherSettings(); dispatcherSettings.ReadFrom(dispatcherSettingsElement); DispatcherSettings.Add(dispatcherSettings); } //BootstrapJobs var bootstrapSettingsElementsExists = bootstrapSettingsElement.GetElementsByTagName("BootstrapJobs").Count == 1 && bootstrapSettingsElement.GetElementsByTagName("BootstrapJob").Count > 0; if (!bootstrapSettingsElementsExists) return; var bootstrapJobsElements = bootstrapSettingsElement.GetElementsByTagName("BootstrapJobs")[0].ChildNodes; foreach (XmlElement bootstrapJobElement in bootstrapJobsElements) { var bootstrapJob = new BootstrapJob(); bootstrapJob.ReadFrom(bootstrapJobElement); BootstrapJobs.Add(bootstrapJob); } }