示例#1
0
        protected virtual AcquiredJobs AcquireJobs(JobAcquisitionContext context, IJobAcquisitionStrategy acquisitionStrategy, ProcessEngineImpl currentProcessEngine)
        {
            ICommandExecutor commandExecutor = ((ProcessEngineConfigurationImpl)currentProcessEngine.ProcessEngineConfiguration).CommandExecutorTxRequired;

            var numJobsToAcquire = acquisitionStrategy.GetNumJobsToAcquire(currentProcessEngine.Name);

            AcquiredJobs acquiredJobs = null;

            if (numJobsToAcquire > 0)
            {
                JobExecutor.LogAcquisitionAttempt(currentProcessEngine);
                acquiredJobs = commandExecutor.Execute(JobExecutor.GetAcquireJobsCmd(numJobsToAcquire));
            }
            else
            {
                acquiredJobs = new AcquiredJobs(numJobsToAcquire);
            }

            context.SubmitAcquiredJobs(currentProcessEngine.Name, acquiredJobs);

            JobExecutor.LogAcquiredJobs(currentProcessEngine, acquiredJobs.Size());
            JobExecutor.LogAcquisitionFailureJobs(currentProcessEngine, acquiredJobs.NumberOfJobsFailedToLock);

            Log.AcquiredJobs(currentProcessEngine.Name, acquiredJobs);

            return(acquiredJobs);
        }
示例#2
0
 /// <summary>
 ///     Reconfigure the acquisition strategy based on the current cycle's acquisition context.
 ///     A strategy implementation may update internal data structure to calculate a different wait time
 ///     before the next cycle of acquisition is performed.
 /// </summary>
 protected internal virtual void ConfigureNextAcquisitionCycle(JobAcquisitionContext acquisitionContext, IJobAcquisitionStrategy acquisitionStrategy)
 {
     acquisitionStrategy.Reconfigure(acquisitionContext);
 }
        protected override void ConfigureNextAcquisitionCycle(JobAcquisitionContext context, IJobAcquisitionStrategy acquisitionStrategy)
        {
            base.ConfigureNextAcquisitionCycle(context, acquisitionStrategy);

            var timeBetweenCurrentAndNextAcquisition = acquisitionStrategy.WaitTime;

            WaitEvents.Add(new RecordedWaitEvent(DateTime.Now.Ticks, timeBetweenCurrentAndNextAcquisition));
        }
 protected override AcquiredJobs AcquireJobs(JobAcquisitionContext context, IJobAcquisitionStrategy configuration, ProcessEngineImpl currentProcessEngine)
 {
     AcquisitionEvents.Add(new RecordedAcquisitionEvent(DateTime.Now.Ticks, configuration.GetNumJobsToAcquire(currentProcessEngine.Name)));
     return(base.AcquireJobs(context, configuration, currentProcessEngine));
 }