毎日 8:00 と 20:00 (IntervalInHours = 12) にクラスでメソッドを実行するために Quartz.Net (バージョン 2) を使用しています。
Quartz.Net のチュートリアルと同じジョブとトリガーを使用したため、すべて問題ありませんが、クラスでいくつかの引数を渡し、それらの引数に基づいてメソッドを実行する必要があります。
Quartz.Net の使用中に引数を使用する方法を教えてくれる人はいますか?
毎日 8:00 と 20:00 (IntervalInHours = 12) にクラスでメソッドを実行するために Quartz.Net (バージョン 2) を使用しています。
Quartz.Net のチュートリアルと同じジョブとトリガーを使用したため、すべて問題ありませんが、クラスでいくつかの引数を渡し、それらの引数に基づいてメソッドを実行する必要があります。
Quartz.Net の使用中に引数を使用する方法を教えてくれる人はいますか?
JobDataMapを使用できます
jobDetail.JobDataMap["jobSays"] = "Hello World!";
jobDetail.JobDataMap["myFloatValue"] = 3.141f;
jobDetail.JobDataMap["myStateData"] = new ArrayList();
public class DumbJob : IJob
{
public void Execute(JobExecutionContext context)
{
string instName = context.JobDetail.Name;
string instGroup = context.JobDetail.Group;
JobDataMap dataMap = context.JobDetail.JobDataMap;
string jobSays = dataMap.GetString("jobSays");
float myFloatValue = dataMap.GetFloat("myFloatValue");
ArrayList state = (ArrayList) dataMap["myStateData"];
state.Add(DateTime.UtcNow);
Console.WriteLine("Instance {0} of DumbJob says: {1}", instName, jobSays);
}
}
@ArsenMkrt の回答を拡張するには、2.x スタイルの流暢なジョブ configJobDataMap
を実行している場合、次のようにロードできます。
var job = JobBuilder.Create<MyJob>()
.WithIdentity("job name")
.UsingJobData("x", x)
.UsingJobData("y", y)
.Build();