xmlファイルではなくコード構成を使用してSpring.NetでQuartzスケジューリング(Spring.Scheduling.Quartz)を構成する方法はありますか?
Spring.NetでQuartzジョブを設定するときに構成ファイルを使用することは完全に避けたいです。
xmlファイルではなくコード構成を使用してSpring.NetでQuartzスケジューリング(Spring.Scheduling.Quartz)を構成する方法はありますか?
Spring.NetでQuartzジョブを設定するときに構成ファイルを使用することは完全に避けたいです。
これは、CodeConfigと一緒に接着されたプログラムベースとXMLベースの両方のジョブスケジューリングを使用するサンプルです。
[Definition]
public virtual IScheduler Scheduler()
{
var scheduler = SchedulerFactory().GetScheduler();
var dataCleanUpJob = JobBuilder.Create<DataCleanUpJob>()
.WithIdentity("DataCleanUpJob", "System")
.StoreDurably(true)
.Build();
ITrigger dataCleanUpTrigger = TriggerBuilder.Create().WithSimpleSchedule(x => x.WithIntervalInHours(1)).Build();
scheduler.ScheduleJob(dataCleanUpJob, dataCleanUpTrigger);
scheduler.StartDelayed(TimeSpan.FromSeconds(10));
return scheduler;
}
[Definition]
public virtual ISchedulerFactory SchedulerFactory()
{
var properties = new NameValueCollection();
// job initialization plugin handles our xml reading, without it defaults are used
properties["quartz.plugin.xml.type"] = "Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz";
properties["quartz.plugin.xml.fileNames"] = "~/quartz_jobs.config";
var factory = new StdSchedulerFactory(properties);
return factory;
}
ここでの重要なポイントは、スケジューラファクトリと実際のスケジューラにシングルトンを設定して、Springコンテキストから利用できるようにすることです。