Exemplo n.º 1
0
        //defines job and triggers and starts the job by calling the execute
        public async void RecallNoXml()
        {
            try
            {
                //create the scheduler for start the job
                ISchedulerFactory schedulerFactory = new StdSchedulerFactory();
                IScheduler        scheduler        = await schedulerFactory.GetScheduler();

                //start the job
                await scheduler.Start();

                //define the job
                IJobDetail job = new JobDetailImpl(
                    "JobQueue",
                    null,
                    typeof(JobQueue));

                //define the trigger
                ITrigger trigger = new Quartz.Impl.Triggers.SimpleTriggerImpl(
                    "trigger",
                    DateTime.UtcNow,
                    null,
                    Quartz.Impl.Triggers.SimpleTriggerImpl.RepeatIndefinitely,
                    new TimeSpan(0, 0, 10));

                await scheduler.ScheduleJob(job, trigger);
            }
            catch (Exception e)
            {
                log.Error($"Error{System.Environment.NewLine}{e.Message}");
            }
        }
Exemplo n.º 2
0
 public bool StartJob(string jobName, IJobExecutor handler, string cron)
 {
     lock (joblocker)
     {
         var existjob = Jobs.Exists(x => x.JobName == jobName);
         if (existjob)
         {
             return(false);
         }
         //string InnerJobId = Guid.NewGuid().ToString();
         JobDetailImpl jobdetail = new JobDetailImpl(jobName, typeof(RuanalInnerJob));
         jobdetail.Description = "内部调度任务";
         Quartz.ITrigger triger    = null;
         var             isrunonce = cron.ToLower() == "runonce";
         if (isrunonce)
         {
             var ttriger = new Quartz.Impl.Triggers.SimpleTriggerImpl("trigger_" + jobName);
             ttriger.RepeatCount    = 0;
             ttriger.RepeatInterval = TimeSpan.FromSeconds(1);
             triger = ttriger;
         }
         else
         {
             var ttriger = new Quartz.Impl.Triggers.CronTriggerImpl("trigger_" + jobName);
             ttriger.CronExpressionString = cron;
             triger = ttriger;
         }
         JobContext jobitem = new JobContext()
         {
             //  InnerJobId = InnerJobId,
             IsRunOnce   = isrunonce,
             JobName     = jobName,
             JobDetail   = jobdetail,
             LastRunTime = null,
             OnInvoke    = handler
         };
         jobitem.Triggers.Add(triger);
         Jobs.Add(jobitem);
         Scheduler.ScheduleJob(jobdetail, triger);
         return(true);
     }
 }
        public void TestAfterPropertiesSet_Trigger_TriggerExists()
        {
            InitForAfterPropertiesSetTest();

            const string TRIGGER_NAME = "trigName";
            const string TRIGGER_GROUP = "trigGroup";
            SimpleTrigger trigger = new SimpleTrigger(TRIGGER_NAME, TRIGGER_GROUP);
            factory.Triggers = new Trigger[] { trigger };

            #if QUARTZ_2_0
            TestSchedulerFactory.MockScheduler.Stub(x => x.GetTrigger(new TriggerKey(TRIGGER_NAME, TRIGGER_GROUP))).Return(trigger);
            #else
            TestSchedulerFactory.MockScheduler.Stub(x => x.GetTrigger(TRIGGER_NAME, TRIGGER_GROUP)).Return(trigger);
            #endif

            factory.AfterPropertiesSet();
        }
        public void TestAfterPropertiesSet_Trigger_TriggerDoesntExist()
        {
            InitForAfterPropertiesSetTest();

            const string TRIGGER_NAME = "trigName";
            const string TRIGGER_GROUP = "trigGroup";
            SimpleTrigger trigger = new SimpleTrigger(TRIGGER_NAME, TRIGGER_GROUP);
            factory.Triggers = new Trigger[] { trigger };

            factory.AfterPropertiesSet();

            TestSchedulerFactory.MockScheduler.AssertWasCalled(x => x.ScheduleJob(trigger));
        }
Exemplo n.º 5
0
        private static TriggerFiredBundle ConstructMinimalTriggerFiredBundle()
        {
            JobDetail jd = new JobDetail("jobName", "jobGroup", typeof(NoOpJob));
            SimpleTrigger trigger = new SimpleTrigger("triggerName", "triggerGroup");
            TriggerFiredBundle retValue = new TriggerFiredBundle(jd, trigger, null, false, null, null, null, null);

            return retValue;
        }
Exemplo n.º 6
0
        public void TestSchedulerFactoryObjectWithPlainQuartzObjects()
        {
            IJobFactory jobFactory = new AdaptableJobFactory();

            TestObject tb = new TestObject("tb", 99);
            JobDetail jobDetail0 = new JobDetail();
            jobDetail0.JobType = typeof (IJob);
            jobDetail0.Name = ("myJob0");
            jobDetail0.Group = (SchedulerConstants.DefaultGroup);
            jobDetail0.JobDataMap.Add("testObject", tb);
            Assert.AreEqual(tb, jobDetail0.JobDataMap.Get("testObject"));

            CronTrigger trigger0 = new CronTrigger();
            trigger0.Name = ("myTrigger0");
            trigger0.Group = SchedulerConstants.DefaultGroup;
            trigger0.JobName = "myJob0";
            trigger0.JobGroup = SchedulerConstants.DefaultGroup;
            trigger0.StartTimeUtc = (DateTime.UtcNow);
            trigger0.CronExpressionString = ("0/1 * * * * ?");

            TestMethodInvokingTask task1 = new TestMethodInvokingTask();
            MethodInvokingJobDetailFactoryObject mijdfb = new MethodInvokingJobDetailFactoryObject();
            mijdfb.Name = ("myJob1");
            mijdfb.Group = (SchedulerConstants.DefaultGroup);
            mijdfb.TargetObject = (task1);
            mijdfb.TargetMethod = ("doSomething");
            mijdfb.AfterPropertiesSet();
            JobDetail jobDetail1 = (JobDetail) mijdfb.GetObject();

            SimpleTrigger trigger1 = new SimpleTrigger();
            trigger1.Name = "myTrigger1";
            trigger1.Group = SchedulerConstants.DefaultGroup;
            trigger1.JobName = "myJob1";
            trigger1.JobGroup = SchedulerConstants.DefaultGroup;
            trigger1.StartTimeUtc = (DateTime.UtcNow);
            trigger1.RepeatCount = (SimpleTrigger.RepeatIndefinitely);
            trigger1.RepeatInterval = TimeSpan.FromMilliseconds(20);

            IScheduler scheduler = MockRepository.GenerateMock<IScheduler>();

            SchedulerFactoryObject schedulerFactoryObject = new TestSchedulerFactoryObject(scheduler);

            schedulerFactoryObject.JobFactory = (jobFactory);
            schedulerFactoryObject.JobDetails = (new JobDetail[] {jobDetail0, jobDetail1});
            schedulerFactoryObject.Triggers = (new Trigger[] {trigger0, trigger1});
            try
            {
                schedulerFactoryObject.AfterPropertiesSet();
                schedulerFactoryObject.Start();
            }
            finally
            {
                schedulerFactoryObject.Dispose();
            }

            scheduler.AssertWasCalled(x => x.JobFactory = jobFactory);
            scheduler.AssertWasCalled(x => x.AddJob(jobDetail0, true));
            scheduler.AssertWasCalled(x => x.AddJob(jobDetail1, true));
            #if QUARTZ_2_0
            scheduler.AssertWasCalled(x => x.GetJobDetail(new JobKey("myJob0", SchedulerConstants.DefaultGroup)));
            scheduler.AssertWasCalled(x => x.GetJobDetail(new JobKey("myJob1", SchedulerConstants.DefaultGroup)));
            scheduler.AssertWasCalled(x => x.GetTrigger(new TriggerKey("myTrigger0", SchedulerConstants.DefaultGroup)));
            scheduler.AssertWasCalled(x => x.GetTrigger(new TriggerKey("myTrigger1", SchedulerConstants.DefaultGroup)));
            #else
            scheduler.AssertWasCalled(x => x.GetJobDetail("myJob0", SchedulerConstants.DefaultGroup));
            scheduler.AssertWasCalled(x => x.GetJobDetail("myJob1", SchedulerConstants.DefaultGroup));
            scheduler.AssertWasCalled(x => x.GetTrigger("myTrigger0", SchedulerConstants.DefaultGroup));
            scheduler.AssertWasCalled(x => x.GetTrigger("myTrigger1", SchedulerConstants.DefaultGroup));
            #endif
        }
        public void TestCreateJobInstance_SimpleDefaults()
        {
            Trigger trigger = new SimpleTrigger();
            TriggerFiredBundle bundle = TestUtil.CreateMinimalFiredBundleWithTypedJobDetail(typeof (NoOpJob), trigger);

            #if QUARTZ_2_0
            IJob job = factory.NewJob(bundle, null);
            #else
            IJob job = factory.NewJob(bundle);
            #endif
            Assert.IsNotNull(job, "Created job was null");
        }
        public void TestCreateJobInstance_SchedulerContextGiven()
        {
            Trigger trigger = new SimpleTrigger();
            TriggerFiredBundle bundle = TestUtil.CreateMinimalFiredBundleWithTypedJobDetail(typeof(InjectableJob), trigger);

            #if QUARTZ_2_0
            IDictionary<string, object> items = new Dictionary<string, object>();
            items["foo"] = "bar";
            items["number"] = 123;
            factory.SchedulerContext = new SchedulerContext(items);
            InjectableJob job = (InjectableJob)factory.NewJob(bundle, null);
            #else
            IDictionary items = new Hashtable();
            items["foo"] = "bar";
            items["number"] = 123;
            factory.SchedulerContext = new SchedulerContext(items);
            InjectableJob job = (InjectableJob) factory.NewJob(bundle);
            #endif

            Assert.IsNotNull(job, "Created job was null");
            Assert.AreEqual("bar", job.Foo, "string injection failed");
            Assert.AreEqual(123, job.Number, "integer injection failed");
        }
        public void TestCreateJobInstance_IgnoredProperties()
        {
            factory.IgnoredUnknownProperties = new string[] {"foo", "baz"};
            Trigger trigger = new SimpleTrigger();
            trigger.JobDataMap["foo"] = "should not be injected";
            trigger.JobDataMap["number"] = 123;
            TriggerFiredBundle bundle = TestUtil.CreateMinimalFiredBundleWithTypedJobDetail(typeof(InjectableJob), trigger);

            #if QUARTZ_2_0
            InjectableJob job = (InjectableJob)factory.NewJob(bundle, null);
            #else
            InjectableJob job = (InjectableJob)factory.NewJob(bundle);
            #endif
            Assert.IsNotNull(job, "Created job was null");
            Assert.AreEqual(123, job.Number, "integer injection failed");
            Assert.IsNull(job.Foo, "foo was injected when it was not supposed to    ");
        }