如何将数组作为参数发送到C#中的石英调度作业
本文关键字:调度作业 石英 数组 参数 | 更新日期: 2023-09-27 18:28:48
我在asp.net mvc中使用quartz.net来每隔1分钟执行一些调度作业,通常你可以在这个代码中向你的作业发送一些参数,我将两个字符串参数作为关键字/值发送到我的作业
IJobDetail SendMatchQuestionJob = JobBuilder.Create<QuestionJob>()
.UsingJobData("param1", "value1")
.UsingJobData("param2", "value2")
.Build();
我想向计划作业发送一个字符串数组,而不是简单的字符串值,你有什么想法吗?还是样品?
提前谢谢你。
您可以使用JobDataMap。UsingJobData()具有JobDataMap的重载。你可以这样构建你的JobDataMap:
IJobDetail SendMatchQuestionJob = JobBuilder.Create<QuestionJob>().Build();
SendMatchQuestionJob.JobDataMap["testArray"] = new string[]{"item1", "item2"};
稍后,您可以通过执行上下文从JobDataMap获取它:
public void Execute(JobExecutionContext context)
{
JobKey key = context.JobDetail.Key;
JobDataMap dataMap = context.JobDetail.JobDataMap;
string[] testArray = (string[]) dataMap["testArray"];
}
我没有看到UsingJobData()
方法有任何有效的重载,所以可能一个可行的选择是传递一个带有分隔符的字符串,比如:
IJobDetail SendMatchQuestionJob = JobBuilder.Create<QuestionJob>()
.UsingJobData("params", "value1;value2;value3")
.Build();
然后用CCD_ 2方法进行分割。