public virtual void TestAcquireLessJobsOnRejection() { // given a job acquisition strategy and a job acquisition context // with acquired jobs, some of which have been rejected for execution var context = new JobAcquisitionContext(); var acquiredJobs = BuildAcquiredJobs(NumJobsToAcquire, NumJobsToAcquire, 0); context.SubmitAcquiredJobs(EngineName, acquiredJobs); // when half of the jobs are rejected var numJobsRejected = 5; for (var i = 0; i < numJobsRejected; i++) { context.SubmitRejectedBatch(EngineName, acquiredJobs.JobIdBatches[i]); } // then the strategy only attempts to acquire the number of jobs that were successfully submitted Strategy.Reconfigure(context); Assert.AreEqual(NumJobsToAcquire - numJobsRejected, Strategy.GetNumJobsToAcquire(EngineName)); // without a timeout Assert.AreEqual(0, Strategy.WaitTime); }
public virtual void TestIdleWaitTime() { // given a job acquisition strategy and a job acquisition context // with no acquired jobs var context = new JobAcquisitionContext(); context.SubmitAcquiredJobs(EngineName, BuildAcquiredJobs(NumJobsToAcquire, 0, 0)); // when reconfiguring the strategy Strategy.Reconfigure(context); // then the job acquisition strategy returns the level 1 idle time Assert.AreEqual(BaseIdleWaitTime, Strategy.WaitTime); // when resubmitting the same acquisition result for (var idleLevel = 1; idleLevel < 6; idleLevel++) { context.Reset(); context.SubmitAcquiredJobs(EngineName, BuildAcquiredJobs(NumJobsToAcquire, 0, 0)); Strategy.Reconfigure(context); Assert.AreEqual((long)(BaseIdleWaitTime * Math.Pow(IdleIncreaseFactor, idleLevel)), Strategy.WaitTime); } // and the maximum idle level is finally reached context.Reset(); context.SubmitAcquiredJobs(EngineName, BuildAcquiredJobs(NumJobsToAcquire, 0, 0)); Strategy.Reconfigure(context); Assert.AreEqual(MaxIdleTime, Strategy.WaitTime); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testIdleWaitTime() public virtual void testIdleWaitTime() { // given a job acquisition strategy and a job acquisition context // with no acquired jobs JobAcquisitionContext context = new JobAcquisitionContext(); context.submitAcquiredJobs(ENGINE_NAME, buildAcquiredJobs(NUM_JOBS_TO_ACQUIRE, 0, 0)); // when reconfiguring the strategy strategy.reconfigure(context); // then the job acquisition strategy returns the level 1 idle time Assert.assertEquals(BASE_IDLE_WAIT_TIME, strategy.WaitTime); // when resubmitting the same acquisition result for (int idleLevel = 1; idleLevel < 6; idleLevel++) { context.reset(); context.submitAcquiredJobs(ENGINE_NAME, buildAcquiredJobs(NUM_JOBS_TO_ACQUIRE, 0, 0)); strategy.reconfigure(context); Assert.assertEquals((long)(BASE_IDLE_WAIT_TIME * Math.Pow(IDLE_INCREASE_FACTOR, idleLevel)), strategy.WaitTime); } // and the maximum idle level is finally reached context.reset(); context.submitAcquiredJobs(ENGINE_NAME, buildAcquiredJobs(NUM_JOBS_TO_ACQUIRE, 0, 0)); strategy.reconfigure(context); Assert.assertEquals(MAX_IDLE_TIME, strategy.WaitTime); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testAcquireLessJobsOnRejection() public virtual void testAcquireLessJobsOnRejection() { // given a job acquisition strategy and a job acquisition context // with acquired jobs, some of which have been rejected for execution JobAcquisitionContext context = new JobAcquisitionContext(); AcquiredJobs acquiredJobs = buildAcquiredJobs(NUM_JOBS_TO_ACQUIRE, NUM_JOBS_TO_ACQUIRE, 0); context.submitAcquiredJobs(ENGINE_NAME, acquiredJobs); // when half of the jobs are rejected int numJobsRejected = 5; for (int i = 0; i < numJobsRejected; i++) { context.submitRejectedBatch(ENGINE_NAME, acquiredJobs.JobIdBatches[i]); } // then the strategy only attempts to acquire the number of jobs that were successfully submitted strategy.reconfigure(context); Assert.assertEquals(NUM_JOBS_TO_ACQUIRE - numJobsRejected, strategy.getNumJobsToAcquire(ENGINE_NAME)); // without a timeout Assert.assertEquals(0, strategy.WaitTime); }
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 internal override void configureNextAcquisitionCycle(JobAcquisitionContext acquisitionContext, JobAcquisitionStrategy acquisitionStrategy) { base.configureNextAcquisitionCycle(acquisitionContext, acquisitionStrategy); long timeBetweenCurrentAndNextAcquisition = acquisitionStrategy.WaitTime; waitEvents.Add(new RecordedWaitEvent(DateTimeHelper.CurrentUnixTimeMillis(), timeBetweenCurrentAndNextAcquisition)); }
public virtual void TestAcquisitionAfterIdleWait() { // given a job acquisition strategy and a job acquisition context // with no acquired jobs var context = new JobAcquisitionContext(); context.SubmitAcquiredJobs(EngineName, BuildAcquiredJobs(NumJobsToAcquire, 0, 0)); Strategy.Reconfigure(context); Assert.AreEqual(BaseIdleWaitTime, Strategy.WaitTime); // when receiving a successful acquisition result context.Reset(); context.SubmitAcquiredJobs(EngineName, BuildAcquiredJobs(NumJobsToAcquire, NumJobsToAcquire, 0)); Strategy.Reconfigure(context); // then the idle Wait time has been reset Assert.AreEqual(0L, Strategy.WaitTime); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testAcquisitionAfterIdleWait() public virtual void testAcquisitionAfterIdleWait() { // given a job acquisition strategy and a job acquisition context // with no acquired jobs JobAcquisitionContext context = new JobAcquisitionContext(); context.submitAcquiredJobs(ENGINE_NAME, buildAcquiredJobs(NUM_JOBS_TO_ACQUIRE, 0, 0)); strategy.reconfigure(context); Assert.assertEquals(BASE_IDLE_WAIT_TIME, strategy.WaitTime); // when receiving a successful acquisition result context.reset(); context.submitAcquiredJobs(ENGINE_NAME, buildAcquiredJobs(NUM_JOBS_TO_ACQUIRE, NUM_JOBS_TO_ACQUIRE, 0)); strategy.reconfigure(context); // then the idle wait time has been reset Assert.assertEquals(0L, strategy.WaitTime); }
public virtual void TestWaitTimeOnFullRejection() { // given a job acquisition strategy and a job acquisition context // with acquired jobs all of which have been rejected for execution var context = new JobAcquisitionContext(); var acquiredJobs = BuildAcquiredJobs(NumJobsToAcquire, NumJobsToAcquire, 0); context.SubmitAcquiredJobs(EngineName, acquiredJobs); for (var i = 0; i < NumJobsToAcquire; i++) { context.SubmitRejectedBatch(EngineName, acquiredJobs.JobIdBatches[i]); } // when reconfiguring the strategy Strategy.Reconfigure(context); // then there is a slight Wait time to avoid constant spinning while // no execution resources are available Assert.AreEqual(BackoffJobAcquisitionStrategy.DefaultExecutionSaturationWaitTime, Strategy.WaitTime); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void testWaitTimeOnFullRejection() public virtual void testWaitTimeOnFullRejection() { // given a job acquisition strategy and a job acquisition context // with acquired jobs all of which have been rejected for execution JobAcquisitionContext context = new JobAcquisitionContext(); AcquiredJobs acquiredJobs = buildAcquiredJobs(NUM_JOBS_TO_ACQUIRE, NUM_JOBS_TO_ACQUIRE, 0); context.submitAcquiredJobs(ENGINE_NAME, acquiredJobs); for (int i = 0; i < NUM_JOBS_TO_ACQUIRE; i++) { context.submitRejectedBatch(ENGINE_NAME, acquiredJobs.JobIdBatches[i]); } // when reconfiguring the strategy strategy.reconfigure(context); // then there is a slight wait time to avoid constant spinning while // no execution resources are available Assert.assertEquals(BackoffJobAcquisitionStrategy.DEFAULT_EXECUTION_SATURATION_WAIT_TIME, strategy.WaitTime); }
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)); }
protected internal override AcquiredJobs acquireJobs(JobAcquisitionContext context, JobAcquisitionStrategy configuration, ProcessEngineImpl currentProcessEngine) { acquisitionEvents.Add(new RecordedAcquisitionEvent(DateTimeHelper.CurrentUnixTimeMillis(), configuration.getNumJobsToAcquire(currentProcessEngine.Name))); return(base.acquireJobs(context, configuration, currentProcessEngine)); }