コード例 #1
0
ファイル: Service1.cs プロジェクト: karl-sjogren/vkminus
        public Service1()
        {
            InitializeComponent();

            Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);

            ISchedulerFactory schedFact = new StdSchedulerFactory();

            _scheduler = schedFact.GetScheduler();

            var parseJob = new JobDetailImpl("ParseJob", "ParserStuff", typeof(ParseJob));

            var parseTrigger = new CronTriggerImpl("ParseTime", "ParserStuff", "0 0/10 * * * ?") // Exactly every ten minutes
            {
                StartTimeUtc = DateTime.UtcNow
            };
            _scheduler.ScheduleJob(parseJob, parseTrigger);

            var summaryJob = new JobDetailImpl("SummaryJob", "SummaryStuff", typeof(SummaryJob));

            var summaryTrigger = new CronTriggerImpl("SummaryTime", "SummaryStuff", "0 0 4 1/1 * ? *") // At 04:00 AM every night
            {
                StartTimeUtc = DateTime.UtcNow
            };
            _scheduler.ScheduleJob(summaryJob, summaryTrigger);
        }
コード例 #2
0
        public void TestClone()
        {
            JobDetailImpl jobDetail = new JobDetailImpl();
            JobDetailImpl clonedJobDetail = (JobDetailImpl) jobDetail.Clone();

            Assert.AreEqual(jobDetail, clonedJobDetail);
        }
コード例 #3
0
        /// <param name="scheduleConfig">Setting Key from your CloudConfigurations, value format "hh:mm;hh:mm;"</param>
        /// <param name="jobType">must inherit from IJob</param>
        /// <param name="timeZoneId">See http://alexandrebrisebois.wordpress.com/2013/01/20/using-quartz-net-to-schedule-jobs-in-windows-azure-worker-roles/ for Ids</param>
        public void ScheduleDailyJob(string scheduleConfig, Type jobType, string timeZoneId)
        {
            var schedule = CloudConfigurationManager.GetSetting(scheduleConfig);
            if (schedule == "-")
                return;

            schedule.Split(';').Where(s => !string.IsNullOrWhiteSpace(s)).ToList().ForEach(h =>
            {
                var index = h.IndexOf(':');
                var hour = h.Substring(0, index);
                var minutes = h.Substring(index + 1, h.Length - (index + 1));

                var job = new JobDetailImpl(jobType.Name + hour + minutes, null,
                                            jobType);

                var trigger = TriggerBuilder.Create()
                                            .StartNow()
                                            .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(Convert.ToInt32(hour,CultureInfo.InvariantCulture),
                                                                                                   Convert.ToInt32(minutes, CultureInfo.InvariantCulture))
                                                                             .InTimeZone(TimeZoneInfo.FindSystemTimeZoneById(timeZoneId)))
                                            .Build();

                sched.ScheduleJob(job, trigger);
            });
        }
コード例 #4
0
        static void Start(IAppBuilder app) {

            // First, initialize Quartz.NET as usual. In this sample app I'll configure Quartz.NET by code.
            var schedulerFactory = new StdSchedulerFactory();
            var scheduler = schedulerFactory.GetScheduler();
            scheduler.Start();

            // I'll add some global listeners
            //scheduler.ListenerManager.AddJobListener(new GlobalJobListener());
            //scheduler.ListenerManager.AddTriggerListener(new GlobalTriggerListener());

            // A sample trigger and job
            var trigger = TriggerBuilder.Create()
                .WithIdentity("myTrigger")
                .WithSchedule(DailyTimeIntervalScheduleBuilder.Create()
                    .WithIntervalInSeconds(6))
                .StartNow()
                .Build();
            var job = new JobDetailImpl("myJob", null, typeof(HelloJob));
            scheduler.ScheduleJob(job, trigger);

            // A cron trigger and job
            var cron = TriggerBuilder.Create()
                .WithIdentity("myCronTrigger")
                .ForJob(job.Key)
                .WithCronSchedule("0/10 * * * * ?") // every 10 seconds
                .Build();

            scheduler.ScheduleJob(cron);

            // A dummy calendar
            //scheduler.AddCalendar("myCalendar", new DummyCalendar { Description = "dummy calendar" }, false, false);

            app.Use(QuartzNetWebConsole.Setup.Owin("/quartz/", () => scheduler));
        }
コード例 #5
0
ファイル: AnnualCalendarTest.cs プロジェクト: haf/quartznet
        public void TestTriggerFireExclusion()
        {
            sched.Start();
            TestJob.JobHasFired = false;
            JobDetailImpl myDesc = new JobDetailImpl("name", "group", typeof(TestJob));
            IOperableTrigger trigger = new CronTriggerImpl("trigName", "trigGroup", "0/15 * * * * ?");
            AnnualCalendar calendar = new AnnualCalendar();

            calendar.SetDayExcluded(DateTime.Now, true);
            sched.AddCalendar("calendar", calendar, true, true);
            trigger.CalendarName = "calendar";
            sched.ScheduleJob(myDesc, trigger);
            IOperableTrigger triggerreplace = new CronTriggerImpl("foo", "trigGroup", "name", "group", "0/15 * * * * ?");
            triggerreplace.CalendarName = "calendar";
            sched.RescheduleJob(new TriggerKey("trigName", "trigGroup"), triggerreplace);
            Thread.Sleep(1000 * 20);
            Assert.IsFalse(TestJob.JobHasFired, "task must not be neglected - it is forbidden by the calendar");

            calendar.SetDayExcluded(DateTime.Now, false);
            sched.AddCalendar("calendar", calendar, true, true);
            Thread.Sleep(1000 * 20);
            Assert.IsTrue(TestJob.JobHasFired, "task must be neglected - it is permitted by the calendar");

            sched.DeleteJob(new JobKey("name", "group"));
            sched.DeleteCalendar("calendar");

            sched.Shutdown();
        }
コード例 #6
0
        public void TestWebRequestJobPassesFireInstanceIdInTheQueryString()
        {
            const string testFireInstanceId = "123";

            using (WebApp.Start<Startup>(BaseHostingAddress)) // base hosting address
            {
                // Arrange
                var pluginRunner = new WebRequest.WebRequestJob();
                _mockJobExecutionContext.SetupGet(p => p.FireInstanceId).Returns(testFireInstanceId);

                IJobDetail jobDetail = new JobDetailImpl("jobsettings", typeof (IJob));
                jobDetail.JobDataMap.Add("actionType", "http");
                jobDetail.JobDataMap.Add("method", "GET");
                jobDetail.JobDataMap.Add("contentType", "text/plain");
                jobDetail.JobDataMap.Add("uri", BaseHostingAddress + "/testapi/test?JobName=TestJob&FireInstanceId={$FireInstanceId}");
                _mockJobExecutionContext.SetupGet(p => p.MergedJobDataMap).Returns(jobDetail.JobDataMap);
                _mockJobExecutionContext.SetupGet(p => p.JobDetail).Returns(jobDetail);

                // Act
                pluginRunner.Execute(_mockJobExecutionContext.Object);

                // Assert
                _mockJobExecutionContext.VerifySet(p => p.Result = "\"" + testFireInstanceId + "\"", Times.Once);
            }
        }
コード例 #7
0
        public void ExceptionPolicyNoRestartImmediately()
        {
            sched.Start();
            JobKey jobKey = new JobKey("ExceptionPolicyNoRestartJob", "ExceptionPolicyNoRestartGroup");
            JobDetailImpl exceptionJob = new JobDetailImpl(jobKey.Name, jobKey.Group, typeof (ExceptionJob));
            exceptionJob.Durable = true;
            sched.AddJob(exceptionJob, false);

            ExceptionJob.ThrowsException = true;
            ExceptionJob.Refire = false;
            ExceptionJob.UnscheduleAllTriggers = false;
            ExceptionJob.UnscheduleFiringTrigger = false;
            ExceptionJob.LaunchCount = 0;
            sched.TriggerJob(jobKey);

            int i = 10;
            while ((i > 0) && (ExceptionJob.LaunchCount <= 1))
            {
                i--;
                Thread.Sleep(200);
                if (ExceptionJob.LaunchCount > 1)
                {
                    break;
                }
            }
            sched.DeleteJob(jobKey);
            Assert.AreEqual(1, ExceptionJob.LaunchCount, "The job should NOT have been refired after exception");
        }
コード例 #8
0
        public virtual void AddSelfUpdaterCheckJob()
        {
            try {
                if (ConfigurationManager.AppSettings["SelfUpdaterCronTrigger"] != null)
                {
                    try
                    {
                        var jobDetail = new JobDetailImpl("SelfUpdaterChecker", null, typeof(SelfUpdaterCheckJob));
                        HttpContext.Current.Application.Lock();
                        var executeJob = !bool.Parse(HttpContext.Current.Application["NugetSelfUpdatesToInstall"].ToString());
                        HttpContext.Current.Application.UnLock();
                        jobDetail.JobDataMap.Add("ExcecuteJob", executeJob);
                        var cronExpression = ConfigurationManager.AppSettings["SelfUpdaterCronTrigger"];
                        var trigger = new CronTriggerImpl("TriggerSelfUpdaterChecker", "SelfUpdaterChecker", cronExpression);
                        _sched.ScheduleJob(jobDetail, trigger);

                    }
                    catch (Exception e)
                    {
                        ErrorHandler.Publish(LogLevel.Error, "Failed to add selfUpdater job", e);
                    }
                }
            }
            catch (Exception e) {
                ErrorHandler.Publish(LogLevel.Error, "Failed to add selfUpdater job", e);
            }
        }
コード例 #9
0
ファイル: PriorityTest.cs プロジェクト: CharlieBP/quartznet
		public void TestSameDefaultPriority()
		{
            NameValueCollection config = new NameValueCollection();
		    config["quartz.threadPool.threadCount"] = "1";
		    config["quartz.threadPool.type"] = "Quartz.Simpl.SimpleThreadPool";

            IScheduler sched = new StdSchedulerFactory(config).GetScheduler();
            
			DateTime n = DateTime.UtcNow;
			DateTime cal = new DateTime(n.Year, n.Month, n.Day, n.Hour, n.Minute, 1, n.Millisecond);

            IMutableTrigger trig1 = new SimpleTriggerImpl("T1", null, cal);
            IMutableTrigger trig2 = new SimpleTriggerImpl("T2", null, cal);

			JobDetailImpl jobDetail = new JobDetailImpl("JD", null, typeof (TestJob));

			sched.ScheduleJob(jobDetail, trig1);

			trig2.JobKey = new JobKey(jobDetail.Key.Name);
			sched.ScheduleJob(trig2);

			sched.Start();

			Thread.Sleep(2000);

			Assert.AreEqual("T1T2", result.ToString());

			sched.Shutdown();
		}
コード例 #10
0
ファイル: SchedulerWrapper.cs プロジェクト: qrunner/qproject
 public void ScheduleJob(string jobName, ISchedule schedule, Action action)
 {
     var jobDetail = new JobDetailImpl(jobName, typeof (ActionJob));
     jobDetail.JobDataMap[ActionJob.ActionParamName] = action;
     _quartzScheduler.ScheduleJob(jobDetail, ((TriggerWrapper) schedule).QuartzTrigger);
     _quartzScheduler.Start();
 }
コード例 #11
0
		private void StartJob(JobDefinition job)
		{
			this.EventReporter.Trace("Creating job: " + job.JobName);
			if(job.Schedule is JobCronSchedule)
			{
			}
			else if(job.Schedule is JobSimpleSchedule) 
			{
				var type = this.TypeLoader.LoadType(job.AssemblyName, job.ClassName);
				var genericJobWrapperType = typeof(JobWrapper<,>);
				var combinedJobType = genericJobWrapperType.MakeGenericType(type);
				var jobDetail = new JobDetailImpl(job.JobName, combinedJobType);
				var simpleSchedule = (JobSimpleSchedule)job.Schedule;
				ITrigger trigger;
				if (simpleSchedule.DelayStartMinutes != 0)
				{
					trigger = new SimpleTriggerImpl(job.JobName + "Trigger", DateBuilder.FutureDate(simpleSchedule.DelayStartMinutes,IntervalUnit.Minute), null, SimpleTriggerImpl.RepeatIndefinitely, TimeSpan.FromMinutes(simpleSchedule.IntervalMinutes));
				}
				else
				{
					trigger = new SimpleTriggerImpl(job.JobName + "Trigger", null, SimpleTriggerImpl.RepeatIndefinitely, TimeSpan.FromMinutes(simpleSchedule.IntervalMinutes));
				}
				this.Scheduler.ScheduleJob(jobDetail, trigger);
			}
			this.EventReporter.Trace("Done Creating " + job.JobName);
		}
コード例 #12
0
ファイル: SqlJobTests.cs プロジェクト: R-Suite/R.Scheduler
        public void TestSqlStatementInsertsNewRowIntoExistingTable()
        {
            using (var dbConnection = new SQLiteConnection(ConnectionString))
            {
                // Arrange
                var pluginRunner = new SqlJob();
                dbConnection.Open();
                const string sql = "create table names (name varchar(20))";
                var command = new SQLiteCommand(sql, dbConnection);
                command.ExecuteNonQuery();

                IJobDetail jobDetail = new JobDetailImpl("TestJob1", typeof(IJob));
                jobDetail.JobDataMap.Add("connectionString", ConnectionString);
                jobDetail.JobDataMap.Add("providerAssemblyName", @"System.Data.SQLite");
                jobDetail.JobDataMap.Add("connectionClass", @"System.Data.SQLite.SQLiteConnection");
                jobDetail.JobDataMap.Add("commandClass", @"System.Data.SQLite.SQLiteCommand");
                jobDetail.JobDataMap.Add("dataAdapterClass", @"System.Data.SQLite.SQLiteDataAdapter");
                jobDetail.JobDataMap.Add("nonQueryCommand", @"insert into names (name) values ('Me')");
                _mockJobExecutionContext.SetupGet(p => p.MergedJobDataMap).Returns(jobDetail.JobDataMap);
                _mockJobExecutionContext.SetupGet(p => p.JobDetail).Returns(jobDetail);

                // Act
                pluginRunner.Execute(_mockJobExecutionContext.Object);

                // Assert
                const string resultSql = "select * from names";
                var resultDa = new SQLiteDataAdapter(resultSql, dbConnection);
                var ds = new DataSet();
                resultDa.Fill(ds, "Results");

                Assert.Equal(1, ds.Tables.Count);
                Assert.Equal("Me", ds.Tables[0].Rows[0][0]);
            }
        }
コード例 #13
0
        public void SettingKeyShouldAlsoSetNameAndGroup()
        {
            JobDetailImpl detail = new JobDetailImpl();
            detail.Key = new JobKey("name", "group");

            Assert.That(detail.Name, Is.EqualTo("name"));
            Assert.That(detail.Group, Is.EqualTo("group"));
        }
コード例 #14
0
ファイル: JobSchedule.cs プロジェクト: chenchunwei/NPC
        public void Start()
        {
            IJobDetail berthInUasgeJob = new JobDetailImpl("NpcMmsJob", "NpcMessageJob", typeof(NpcMmsJob));
            var trigger = new CronTriggerImpl("NpcMmsJobTrigger", "NpcMessageJob", "00 0/10 * * * ? *");

            _scheduler.ScheduleJob(berthInUasgeJob, trigger);
            _scheduler.Start();
        }
コード例 #15
0
ファイル: Scheduler.cs プロジェクト: jdehlin/Twitta
        public static void Init()
        {
            var scheduler = StdSchedulerFactory.GetDefaultScheduler();
            scheduler.Start();

            var job = new JobDetailImpl("SearchJob", "jobs", typeof(SearchJob));
            var trigger = new CronTriggerImpl("SearchTrigger", "jobs", ConfigurationManager.AppSettings["CronTrigger"]);
            scheduler.ScheduleJob(job, trigger);
        }
コード例 #16
0
        public void JobDetailsShouldBeSerializable()
        {
            JobDetailImpl original = new JobDetailImpl("name", "group", typeof (NoOpJob));

            JobDetailImpl cloned = original.DeepClone();

            Assert.That(cloned.Name, Is.EqualTo(original.Name));
            Assert.That(cloned.Group, Is.EqualTo(original.Group));
            Assert.That(cloned.Key, Is.EqualTo(original.Key));
        }
コード例 #17
0
ファイル: RAMJobStoreTest.cs プロジェクト: haf/quartznet
        public void SetUp()
        {
            fJobStore = new RAMJobStore();
            fSignaler = new SampleSignaler();
            fJobStore.Initialize(null, fSignaler);

            fJobDetail = new JobDetailImpl("job1", "jobGroup1", typeof (NoOpJob));
            fJobDetail.Durable = true;
            fJobStore.StoreJob(fJobDetail, false);
        }
コード例 #18
0
 public override void TestAfterPropertiesSet_JobDetailGiven()
 {
     const string jobName = "jobName";
     const string jobGroup = "jobGroup";
     IJobDetail jd = new JobDetailImpl(jobName, jobGroup, typeof(NoOpJob));
     cronTrigger.JobDetail = jd;
     cronTrigger.AfterPropertiesSet();
     base.TestAfterPropertiesSet_JobDetailGiven();
     Assert.AreSame(jd, cronTrigger.JobDetail, "job details weren't same");
 }
コード例 #19
0
 public void TestEquals()
 {
     JobDetailImpl jd1 = new JobDetailImpl("name", "group", typeof (NoOpJob));
     JobDetailImpl jd2 = new JobDetailImpl("name", "group", typeof (NoOpJob));
     JobDetailImpl jd3 = new JobDetailImpl("namediff", "groupdiff", typeof (NoOpJob));
     Assert.AreEqual(jd1, jd2);
     Assert.AreNotEqual(jd1, jd3);
     Assert.AreNotEqual(jd2, jd3);
     Assert.AreNotEqual(jd1, null);
 }
コード例 #20
0
 public void StartQuartz()
 {
     if (!scheduler.IsStarted)
     {
         scheduler.Start();
         Quartz.IJobDetail   job1    = new Quartz.Impl.JobDetailImpl("计算用户最新收益", "EarningsJob", typeof(EarningsJob));
         Quartz.ICronTrigger trigger = new Quartz.Impl.Triggers.CronTriggerImpl("计算用户最新收益触发器", "triggergroup", "计算用户最新收益", "EarningsJob", "0 0 6 * * ?");//每天早上六点执行
         scheduler.ScheduleJob(job1, trigger);
         Common.CustomLog.WriteLog("成功启动任务!" + scheduler.IsStarted);
     }
 }
コード例 #21
0
        public void TestExecuteMethodReturnsWhenPluginPathIsMissingInJobDataMap()
        {
            // Arrange
            var pluginRunner = new AssemblyPluginJob();

            IJobDetail jobDetail = new JobDetailImpl("jobsettings", typeof(IJob));
            _mockJobExecutionContext.SetupGet(p => p.JobDetail).Returns(jobDetail);

            // Act / Assert
            Assert.Throws<JobExecutionException>(() => pluginRunner.Execute(_mockJobExecutionContext.Object));
        }
コード例 #22
0
        private void ScheduleImport(string Filename, int ImportDelay)
        {
            var startTime = new DateTimeOffset(DateTime.Now.AddMilliseconds(ImportDelay));
            var jobTrigger = new SimpleTriggerImpl(Guid.NewGuid().ToString(), startTime);

            var jobDetails = new JobDetailImpl(Guid.NewGuid().ToString(), typeof(ImporterJob));
            jobDetails.JobDataMap.Add("Filename", Filename);
            jobDetails.JobDataMap.Add("RetryCount", 0);

            Scheduler.ScheduleJob(jobDetails, jobTrigger);
        }
コード例 #23
0
 public static void AddJob()
 {
     log.Debug(" Called AddJob Method of Common Scheduler");
     IRunAllJob myJob = new RunAllJob();
     //JobDetailImpl jobDetail = new JobDetailImpl("Job1", "Group1", myJob.GetType());
     JobDetailImpl jobDetail = new JobDetailImpl("AllJob", "AllGroup", myJob.GetType());
     //CronTriggerImpl trigger = new CronTriggerImpl("Trigger1", "Group1", "0 * 8-17 * * ?"); //run every minute between the hours of 8am and 5pm
     // per minute 0 */1 * * * ?
     CronTriggerImpl trigger = new CronTriggerImpl("Trigger1", "AllGroup", "0 */1 * * * ?"); //run every minute between the hours of 8am and 5pm
     _scheduler.ScheduleJob(jobDetail, trigger);
     DateTimeOffset? nextFireTime = trigger.GetNextFireTimeUtc();
 }
コード例 #24
0
ファイル: Program.cs プロジェクト: kaleyroy/QuartzNetAPI
        private static IScheduler SetupScheduler()
        {
            var stdSchedulerFactory = new StdSchedulerFactory();
            var scheduler = stdSchedulerFactory.GetScheduler();

            var jobDetail = new JobDetailImpl("Dummy Job", typeof(DummyJob));

            var trigger = TriggerBuilder.Create().WithIdentity("Dummy Job Trigger").WithCronSchedule("0 0/1 * ? * *").ForJob(jobDetail).StartNow().Build();

            scheduler.ScheduleJob(jobDetail, trigger);

            return scheduler;
        }
コード例 #25
0
        public void TestJobFailsWhenPluginThrowsErrorDuringExecution()
        {
            // Arrange
            var pluginRunner = new AssemblyPluginJob();

            string currentDirectory = Directory.GetCurrentDirectory();
            IJobDetail jobDetail = new JobDetailImpl("jobsettings", typeof(IJob));
            jobDetail.JobDataMap.Add("pluginPath", Path.Combine(currentDirectory, @"Resourses\R.Scheduler.FakeJobPluginWithError.dll"));
            _mockJobExecutionContext.SetupGet(p => p.JobDetail).Returns(jobDetail);

            // Act / Assert
            Assert.Throws<JobExecutionException>(() => pluginRunner.Execute(_mockJobExecutionContext.Object));
        }
コード例 #26
0
        public void ShouldBeAbleToUseMixedProperties()
        {
            NameValueCollection properties = new NameValueCollection();
            properties["quartz.jobStore.type"] = "Quartz.Impl.AdoJobStore.JobStoreTX, Quartz";
            properties["quartz.jobStore.driverDelegateType"] = "Quartz.Impl.AdoJobStore.StdAdoDelegate, Quartz";
            properties["quartz.jobStore.dataSource"] = "default";
            properties["quartz.jobStore.useProperties"] = false.ToString();

            string connectionString;
            dbConnectionStrings.TryGetValue("SQLServer", out connectionString);
            properties["quartz.dataSource.default.connectionString"] = connectionString;
            properties["quartz.dataSource.default.provider"] = "SqlServer-20";

            ISchedulerFactory sf = new StdSchedulerFactory(properties);
            IScheduler sched = sf.GetScheduler();
            sched.Clear();

            JobDetailImpl jobWithData = new JobDetailImpl("datajob", "jobgroup", typeof(NoOpJob));
            jobWithData.JobDataMap["testkey"] = "testvalue";
            IOperableTrigger triggerWithData = new SimpleTriggerImpl("datatrigger", "triggergroup", 20, TimeSpan.FromSeconds(5));
            triggerWithData.JobDataMap.Add("testkey", "testvalue");
            triggerWithData.EndTimeUtc = DateTime.UtcNow.AddYears(10);
            triggerWithData.StartTimeUtc = DateTime.Now.AddMilliseconds(1000L);
            sched.ScheduleJob(jobWithData, triggerWithData);
            sched.Shutdown();

            // try again with changing the useproperties against same set of data
            properties["quartz.jobStore.useProperties"] = true.ToString();
            sf = new StdSchedulerFactory(properties);
            sched = sf.GetScheduler();

            var triggerWithDataFromDb = sched.GetTrigger(new TriggerKey("datatrigger", "triggergroup"));
            var jobWithDataFromDb = sched.GetJobDetail(new JobKey("datajob", "jobgroup"));
            Assert.That(triggerWithDataFromDb.JobDataMap["testkey"], Is.EqualTo("testvalue"));
            Assert.That(jobWithDataFromDb.JobDataMap["testkey"], Is.EqualTo("testvalue"));

            // once more
            sched.DeleteJob(jobWithData.Key);
            sched.ScheduleJob(jobWithData, triggerWithData);
            sched.Shutdown();

            properties["quartz.jobStore.useProperties"] = false.ToString();
            sf = new StdSchedulerFactory(properties);
            sched = sf.GetScheduler();

            triggerWithDataFromDb = sched.GetTrigger(new TriggerKey("datatrigger", "triggergroup"));
            jobWithDataFromDb = sched.GetJobDetail(new JobKey("datajob", "jobgroup"));
            Assert.That(triggerWithDataFromDb.JobDataMap["testkey"], Is.EqualTo("testvalue"));
            Assert.That(jobWithDataFromDb.JobDataMap["testkey"], Is.EqualTo("testvalue"));
        }
コード例 #27
0
ファイル: ContactService.cs プロジェクト: dasklub/kommunity
        public static void AddHealthMonitoringJob()
        {
            const string trigger1 = "HealthMonitoring";
            const string timeToRun = "0 0/10 * * * ?";

            IMyJob myJob = new HealthMonitiorJob(); //This Constructor needs to be parameterless
            var jobDetail = new JobDetailImpl(trigger1 + Job, Group1, myJob.GetType());
            var trigger = new CronTriggerImpl(trigger1, Group1, timeToRun)
            {TimeZone = TimeZoneInfo.Utc};
            _scheduler.ScheduleJob(jobDetail, trigger);
            DateTimeOffset? nextFireTime = trigger.GetNextFireTimeUtc();
            if (nextFireTime != null)
                Log.Info(string.Format("{0}+{1}", Group1, trigger1), new Exception(nextFireTime.Value.ToString("u")));
        }
コード例 #28
0
        public void TestExecuteMethodReturnsWhenPluginPathIsMissingInJobDataMap()
        {
            // Arrange
            var pluginRunner = new PluginRunner();

            IJobDetail jobDetail = new JobDetailImpl("jobsettings", typeof(IJob));
            _mockJobExecutionContext.SetupGet(p => p.JobDetail).Returns(jobDetail);

            // Act
            pluginRunner.Execute(_mockJobExecutionContext.Object);

            // Assert
            Assert.False(File.Exists("FakeJobPlugin.txt"));
        }
コード例 #29
0
        public static void AddJob()
        {
            isSchedulerStart = true;

            log.Error(" Now Job is Called for Deposti ");
            IDepositJob myJob = new DepositJob();
            JobDetailImpl jobDetail = new JobDetailImpl("JobDeposit", "GroupDeposit", myJob.GetType());
            //CronTriggerImpl trigger = new CronTriggerImpl("Trigger1", "Group1", "0 * 8-17 * * ?"); //run every minute between the hours of 8am and 5pm
            // per minute 0 */1 * * * ?
            // Night 2 o'clock==== 0 0 2 * * ?
            CronTriggerImpl trigger = new CronTriggerImpl("Trigger1", "GroupDeposit", "0 0 2 * * ?"); //run every minute between the hours of 8am and 5pm
            _scheduler.ScheduleJob(jobDetail, trigger);
            DateTimeOffset? nextFireTime = trigger.GetNextFireTimeUtc();
        }
コード例 #30
0
        public void StartSchedule()
        {
            ISchedulerFactory schedFactory = new StdSchedulerFactory();

            IScheduler scheduler = schedFactory.GetScheduler();
            scheduler.Start();
            IJobDetail jobDetail = new JobDetailImpl("myJob", null, typeof(DataJob));
            jobDetail.JobDataMap["data"] = new ExternalData();
            jobDetail.JobDataMap["dataManager"] = new DataManager();
            jobDetail.JobDataMap["dbContext"] = new UowData();
            ISimpleTrigger trigger = new SimpleTriggerImpl("myTrigger", null, DateTime.UtcNow,
                DateTime.UtcNow.AddYears(1), SimpleTriggerImpl.RepeatIndefinitely, TimeSpan.FromHours(2));
            scheduler.ScheduleJob(jobDetail, trigger);
        }
コード例 #31
0
ファイル: ContactService.cs プロジェクト: dasklub/kommunity
        public static void AddBirthdayJob()
        {
            const string trigger1 = "EmailTasksTrigger";
            const string jobName = trigger1 + Job;
            const string timeToRun = "0 0 2 * * ?";

            IMyJob myJob = new BirthdayJob(); //This Constructor needs to be parameterless
            var jobDetail = new JobDetailImpl(jobName, Group1, myJob.GetType());
            var trigger = new CronTriggerImpl(trigger1, Group1, timeToRun)
            {TimeZone = TimeZoneInfo.Utc};
            _scheduler.ScheduleJob(jobDetail, trigger);
            DateTimeOffset? nextFireTime = trigger.GetNextFireTimeUtc();
            if (nextFireTime != null)
                Log.Debug(string.Format("{0}+{1}", Group1, trigger1), new Exception(nextFireTime.Value.ToString("u")));
        }
コード例 #32
0
 protected virtual bool IsEqual(JobDetailImpl detail)
 {
     return((detail != null) && (detail.Name == Name) && (detail.Group == Group) &&
            (detail.JobType == JobType));
 }
コード例 #33
0
ファイル: JobDetailImpl.cs プロジェクト: 15831944/tool
 /// <summary>
 /// Checks equality between given job detail and this instance.
 /// </summary>
 /// <param name="detail">The detail to compare this instance with.</param>
 /// <returns></returns>
 public bool Equals(JobDetailImpl detail)
 {
     return(IsEqual(detail));
 }