Просто узнайте о Quartz.Net, но у вас есть проблема с получением любых данных из Job. Вот мой код:Quartz.Net, передающие и возвращающие данные
protected static void ConfigureQuartzJobs()
{
// construct a scheduler factory
ISchedulerFactory schedFact = new StdSchedulerFactory();
// get a scheduler
IScheduler sched = schedFact.GetScheduler();
sched.Start();
IJobDetail job = JobBuilder.Create<ServerStatusJob>()
.WithIdentity("myJob", "group1") // name "myJob", group "group1"
.UsingJobData("xxx", "param1")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("myTrigger", "group1")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInSeconds(30)
.RepeatForever())
.Build();
sched.ScheduleJob(job, trigger);
}
Над кодом Я побежал в своем приложении Application_Start(). Как вы можете видеть, я пытаюсь передать свои данные «xxx».
public class MyJob : IJob
{
public void Execute(Quartz.IJobExecutionContext context)
{
JobKey key = context.JobDetail.Key;
JobDataMap dataMap = context.JobDetail.JobDataMap;
string jobSays = dataMap.GetString("xxx");
System.Diagnostics.Debug.WriteLine("Run at " + jobSays + DateTime.Now.ToString());
}
}
На данный момент я успешно получаю параметр, который я только что отправил. Но как мне вернуть некоторые данные в мой метод ConfigureQuartzJobs().
Пожалуйста, объясните, какие данные вы хотите вернуть, почему и где. На самом деле это не имеет смысла, тем более, что ваш метод Configure уже вернулся. Попробуйте прочитать о Jobstore или перенести данные задания самостоятельно, например, используя базу данных. – CodeCaster
Да, ваше право, оно уже вернулось. У меня возникла проблема с получением сеанса nhibernate в методе Execute(). Не знаете, как это получить. – dausdashsan