Exemplo n.º 1
0
        public virtual void TestExecuteJobsForSingleEngine()
        {
            // configure and build a process engine
            StandaloneProcessEngineConfiguration standaloneProcessEngineConfiguration =
                new StandaloneInMemProcessEngineConfiguration();

            //JAVA TO C# CONVERTER WARNING: The .NET Type.FullName property will not always yield results identical to the Java Class.GetName method:
            standaloneProcessEngineConfiguration.SetProcessEngineName(GetType().FullName + "-engine1");
            //standaloneProcessEngineConfiguration.JdbcUrl = "jdbc:h2:mem:jobexecutor-test-engine";
            standaloneProcessEngineConfiguration.SetJobExecutorActivate(false);
            standaloneProcessEngineConfiguration.SetJobExecutor(_jobExecutor);
            standaloneProcessEngineConfiguration.SetDbMetricsReporterActivate(false);
            var engine = standaloneProcessEngineConfiguration.BuildProcessEngine();

            _createdProcessEngines.Add(engine);

            engine.RepositoryService.CreateDeployment().AddClasspathResource(ProcessResource).Deploy();

            _jobExecutor.Shutdown();

            engine.RuntimeService.StartProcessInstanceByKey("intermediateTimerEventExample");

            Assert.AreEqual(1, engine.ManagementService.CreateJobQuery().Count());

            ClockUtil.CurrentTime = DateTime.Now.AddDays(6);
            _jobExecutor.Start();

            WaitForJobExecutorToProcessAllJobs(10000, 100, _jobExecutor, engine.RuntimeService, true);

            Assert.AreEqual(0, engine.ManagementService.CreateJobQuery().Count());
        }
Exemplo n.º 2
0
        public virtual void TestExecuteJobsForTwoEnginesSameAcquisition()
        {
            // configure and build a process engine
            StandaloneProcessEngineConfiguration engineConfiguration1 = new StandaloneInMemProcessEngineConfiguration();

            //JAVA TO C# CONVERTER WARNING: The .NET Type.FullName property will not always yield results identical to the Java Class.GetName method:

            engineConfiguration1.SetProcessEngineName(GetType().FullName + "-engine1");
            //engineConfiguration1.JdbcUrl = "jdbc:h2:mem:activiti1";
            engineConfiguration1.SetJobExecutorActivate(false);
            engineConfiguration1.SetJobExecutor(_jobExecutor);
            engineConfiguration1.SetDbMetricsReporterActivate(false);

            var engine1 = engineConfiguration1.BuildProcessEngine();

            _createdProcessEngines.Add(engine1);

            // and a second one
            StandaloneProcessEngineConfiguration engineConfiguration2 = new StandaloneInMemProcessEngineConfiguration();

            //JAVA TO C# CONVERTER WARNING: The .NET Type.FullName property will not always yield results identical to the Java Class.GetName method:
            engineConfiguration2.SetProcessEngineName(GetType().FullName + "engine2");
            //engineConfiguration2.JdbcUrl = "jdbc:h2:mem:activiti2";
            engineConfiguration2.SetJobExecutorActivate(false);
            engineConfiguration2.SetJobExecutor(_jobExecutor);
            engineConfiguration2.SetDbMetricsReporterActivate(false);

            var engine2 = engineConfiguration2.BuildProcessEngine();

            _createdProcessEngines.Add(engine2);

            // stop the acquisition
            _jobExecutor.Shutdown();

            // deploy the processes

            engine1.RepositoryService.CreateDeployment().AddClasspathResource(ProcessResource).Deploy();

            engine2.RepositoryService.CreateDeployment().AddClasspathResource(ProcessResource).Deploy();

            // start one instance for each engine:

            var procinst1 = engine1.RuntimeService.StartProcessInstanceByKey("intermediateTimerEventExample");
            var procinst2 = engine2.RuntimeService.StartProcessInstanceByKey("intermediateTimerEventExample");

            Assert.AreEqual(1, engine1.ManagementService.CreateJobQuery().Count(c => c.ProcessInstanceId == procinst1.Id));
            Assert.AreEqual(1, engine2.ManagementService.CreateJobQuery().Count(c => c.ProcessInstanceId == procinst2.Id));

            ClockUtil.CurrentTime = DateTime.Now.AddDays(6);

            _jobExecutor.Start();
            // Assert task completed for the first engine
            WaitForJobExecutorToProcessAllJobs(10000, 100, _jobExecutor, engine1.RuntimeService, true);

            _jobExecutor.Start();
            // Assert task completed for the second engine
            WaitForJobExecutorToProcessAllJobs(10000, 100, _jobExecutor, engine2.RuntimeService, true);

            Assert.AreEqual(0, engine1.ManagementService.CreateJobQuery().Count(c => c.ProcessInstanceId == procinst1.Id));
            Assert.AreEqual(0, engine2.ManagementService.CreateJobQuery().Count(c => c.ProcessInstanceId == procinst2.Id));
        }