How can I create a schedule that fires every nth week, using quartz.net simple schedule?
Asked
Active
Viewed 650 times
-2
-
2What you have tried so far????????? – Sai Kalyan Kumar Akshinthala Mar 31 '15 at 09:32
1 Answers
0
Well something Like this would do the trick
IScheduler sched;
private void ConfigureScheduler()
{
int nbweeks = 1;
int n = 24*7*nbweeks;
var schedFact = new StdSchedulerFactory();
sched = schedFact.GetScheduler();
var job = new JobDetailImpl("weeklyjob", null, typeof(Type));
var timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("W. Europe Standard Time");
var trigger = TriggerBuilder.Create()
.StartNow()
.WithSimpleSchedule(x=>x.RepeatForever().WithIntervalInHours(n))
.Build();
sched.ScheduleJob(job, trigger);
sched.Start();
}
just change nbweeks according to your needs and it will run every n week
this solution will fire once each month on the 14th day (2nd week) you can change the day of the second week as you please
IScheduler schedd;
private void ConfigureScheduler()
{
var schedFact = new StdSchedulerFactory();
schedd = schedFact.GetScheduler();
var job = new JobDetailImpl("weeklyJob", null, typeof(Type));
var timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var cronScheduleBuilder = CronScheduleBuilder.MonthlyOnDayAndHourAndMinute(14, 12, 0);
var trigger = TriggerBuilder.Create()
.StartNow()
.WithSchedule(cronScheduleBuilder)
.Build();
sched.ScheduleJob(job, trigger);
sched.Start();
}
update This code will fire each second Monday of each month
IScheduler schedd;
private void ConfigureScheduler()
{
var schedFact = new StdSchedulerFactory();
schedd = schedFact.GetScheduler();
var job = new JobDetailImpl("weeklyJob", null, typeof(Type));
var timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
var cronScheduleBuilder = CronScheduleBuilder.CronSchedule("0 0 12 ? 1/1 MON#2 *");
var trigger = TriggerBuilder.Create()
.StartNow()
.WithSchedule(cronScheduleBuilder)
.Build();
sched.ScheduleJob(job, trigger);
sched.Start();
}

Coder1409
- 523
- 4
- 12
-
-
you have n=24*7(24 hours a day, 7 days a week this won't change for sure) by multiplying n*nthweek you will get what you want , I have been using this solution for its simplicity with hours , days and weeks – Coder1409 Mar 31 '15 at 09:54
-
This will fire every 2 weeks right? not the 2nd week of every month. I need the expression for every 2nd week of every month. Please help – Kalpa-W Mar 31 '15 at 10:09
-
-
Check out My last update for this subject,, just use the information i gave to do what you want – Coder1409 Apr 01 '15 at 08:11