Beispiel #1
0
        public Worker(string name,
                      IpAddress ipAddress,
                      int port,
                      IReplyServer electionReplyServer,
                      string primaryDirectory,
                      IDirectoryPreparerAsync directoryPreparer,
                      IElectionRequester electionRequester,
                      IMasterFileReader masterFileReader,
                      IMasterFileWriter masterFileWriter,
                      IUnitOfWorkFileReader unitOfWorkFileReader,
                      IUnitOfWorkFileWriter unitOfWorkFileWriter,
                      IWorkerLogger logger         = null,
                      IWorkProcessor workProcessor = null
                      )
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentNullException("name", string.Format(Messages.StringNullEmptyOrWhiteSpace, "name"));
            }
            Connection = new WorkerConnection
            {
                Name      = name,
                IpAddress = ipAddress ?? throw new ArgumentNullException("ipAddress", string.Format(Messages.ObjectNull, "ipAddress")),
                                  Port = (port > 1024 && port < 65536) ? port : throw new ArgumentNullException("port", Messages.PortNoInRange)
            };
            _DirectoryPreparer    = directoryPreparer ?? throw new ArgumentNullException("directoryPreparer", string.Format(Messages.ObjectNull, "directoryPreparer"));;
            _PrimaryDirectory     = primaryDirectory;
            _ReplyServer          = electionReplyServer ?? throw new ArgumentNullException("electionReplyServer", string.Format(Messages.ObjectNull, "electionReplyServer"));
            _ElectionRequester    = electionRequester ?? throw new ArgumentNullException("electionRequester", string.Format(Messages.ObjectNull, "electionRequester"));
            _MasterFileReader     = masterFileReader ?? throw new ArgumentNullException("masterFileReader", string.Format(Messages.ObjectNull, "masterFileReader"));
            _MasterFileWriter     = masterFileWriter ?? throw new ArgumentNullException("masterFileWriter", string.Format(Messages.ObjectNull, "masterFileWriter"));
            _UnitOfWorkFileReader = unitOfWorkFileReader ?? throw new ArgumentNullException("unitOfWorkFileReader", string.Format(Messages.ObjectNull, "unitOfWorkFileReader"));
            _UnitOfWorkFileWriter = unitOfWorkFileWriter ?? throw new ArgumentNullException("unitOfWorkFileWriter", string.Format(Messages.ObjectNull, "unitOfWorkFileWriter"));

            _Logger = logger;
            if (_Logger == null)
            {
                _Logger = new MultiLogger(name, new ConsoleLogger(),
                                          new Log4NetLogger(LogManager.GetLogger(Assembly.GetExecutingAssembly(), $"{Connection.Name}.log")));
            }

            _WorkProcessor             = workProcessor ?? new WorkProcessor(_Logger);
            _WorkProcessor.OnComplete += OnWorkComplete;
        }
Beispiel #2
0
 public Worker(ITaskConsumer <T> taskQueue, ISubscriberCollection <T> subscribers, IWorkerLogger logger)
 {
     m_taskQueue   = taskQueue;
     m_subscribers = subscribers;
     m_logger      = logger;
 }
 public WorkProcessor(IWorkerLogger logger)
 {
     _Logger = logger;
 }