Esempio n. 1
0
 internal ScheduledProducer(TimeSpan timespan,
                            Func <CancellationToken, IEnumerable <IWorkItem> > startupWorkFactoryMethod,
                            Func <CancellationToken, IEnumerable <IWorkItem> > workFactoryMethod,
                            IStartupBarrier startupBarrier = null)
     : base(startupBarrier)
 {
     _timespan = timespan;
     _startupWorkFactoryMethod = startupWorkFactoryMethod;
     _workItemFactoryMethod    = workFactoryMethod ?? throw new ArgumentNullException(nameof(workFactoryMethod));
 }
Esempio n. 2
0
        internal AbstractProducer(IThreadWrapper worker, IStartupBarrier startupBarrier = null)
        {
            _worker = worker;
            _worker.Setup(Loop,
                          cancellationToken =>
            {
                Startup(AddWork, cancellationToken);

                startupBarrier?.Wait(cancellationToken);
            });
        }
Esempio n. 3
0
 public WorkerPoolBuilder(IStartupBarrier startupBarrier = null)
 {
     _barrier    = startupBarrier;
     _workerPool = new WorkerPool();
     _workQueue  = new BlockingCollection <IWorkItem>();
 }
Esempio n. 4
0
 internal StartupWorkBatch(IWorkBatch workBatch, IStartupBarrier barrier)
 {
     _workBatch = workBatch;
     _barrier   = barrier;
 }
Esempio n. 5
0
 public WorkBatchFactory(IStartupBarrier startupBarrier = null)
 {
     _startupBarrier = startupBarrier;
 }
Esempio n. 6
0
 protected AbstractProducer(IStartupBarrier startupBarrier = null) : this(new ThreadWrapper(), startupBarrier)
 {
 }