public RemoteSubmissionsWorker(string endpointRoot, IFormatterServiceFactory formatterServicesFactory) { this.formatterServicesFactory = formatterServicesFactory; this.Location = endpointRoot; this.endpoint = $"{endpointRoot}/executeSubmission?keepDetails=true"; this.http = new HttpService(); }
private (SubmissionProcessor <TSubmission> submissionProcessor, Thread thread) CreateRemoteWorker( int index, string endpoint, ConcurrentQueue <TSubmission> submissionsForProcessing, object sharedLockObject, IFormatterServiceFactory formatterServiceFactory, ISubmissionsFilteringService submissionsFilteringService) { var worker = new RemoteSubmissionsWorker( endpoint, formatterServiceFactory, this.Logger); var submissionProcessor = new SubmissionProcessor <TSubmission>( name: $"RSP #{index}", dependencyContainer: this.DependencyContainer, submissionsForProcessing: submissionsForProcessing, sharedLockObject: sharedLockObject, submissionsFilteringService: submissionsFilteringService, submissionWorker: worker); var thread = new Thread(submissionProcessor.Start) { Name = $"{nameof(Thread)} #{index}" }; return(submissionProcessor, thread); }
public RemoteSubmissionsWorker( string endpointRoot, IFormatterServiceFactory formatterServicesFactory, ILog logger) { this.formatterServicesFactory = formatterServicesFactory; this.logger = logger; this.Location = endpointRoot; this.endpoint = $"{endpointRoot}/executeSubmission"; this.http = new HttpService(); }
private IEnumerable <(SubmissionProcessor <TSubmission> submissionProcessor, Thread thread)> GetRemoteWorkers( IEnumerable <string> remoteWorkerEndpoints, ConcurrentQueue <TSubmission> submissionsForProcessing, object sharedLockObject, IFormatterServiceFactory formatterServiceFactory, ISubmissionsFilteringService submissionsFilteringService) { var remoteWorkerEndpointsList = remoteWorkerEndpoints.ToList(); return(Enumerable.Range(0, remoteWorkerEndpointsList.Count) .Select(index => this.CreateRemoteWorker( index + 1, remoteWorkerEndpointsList[index], submissionsForProcessing, sharedLockObject, formatterServiceFactory, submissionsFilteringService))); }