Reputation: 1
CallForImportProperties.cs
public class CallForImportProperties : IJob
{
public static readonly string dailySchedulerRunTime = ConfigurationManager.AppSettings["DailySchedulerRunTimestatus"].ToString();
public async Task Execute(IJobExecutionContext context)
{
//StringBuilder sb = new StringBuilder();
var task = Task.Run(() =>
{
if (dailySchedulerRunTime.Equals("ON"))
{
try
{
method();
}
catch (Exception ex)
{
}
}
});
await Console.Out.WriteLineAsync("HelloJob is executing.");
}
Scheduler.CS
public class Scheduler
{
public static void Start()
{
string dailySchedulerRunTime = ConfigurationManager.AppSettings["DailySchedulerRunTime"].ToString();
IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler().Result;
IJobDetail jobImportProperties = JobBuilder.Create<CallForImportProperties>().Build();
ITrigger triggerImportProperties = TriggerBuilder.Create()
.ForJob(jobImportProperties)
.WithCronSchedule(dailySchedulerRunTime)
.Build();
scheduler.ScheduleJob(jobImportProperties, triggerImportProperties);
#endregion
scheduler.Start();
}
}
Upvotes: 0
Views: 202
Reputation:
Try to Use InTimeZone() in your method TriggerBuilder.Create()
ITrigger triggerImportProperties = TriggerBuilder.Create()
.ForJob(jobImportProperties)
.WithDailyTimeIntervalSchedule
(s=>
s.WithIntervalInHours(Convert.ToInt32(dailySchedulerRunTime))
.OnEveryDay()
.InTimeZone(TimeZoneInfo.Local))
.Build();
let me know if any concern. I guess it will work. Because, it is working for me.
Thanks.
Upvotes: 0