我在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"];
    }

09-28 00:47