我在调度包含JobMapData的作业时遇到问题。我正在使用SQL Server保留作业/触发器数据。
当我计划作业而不添加JobMapData时,它们会按预期显示在数据库中,并且我的应用程序完美地执行了作业。但是,当我添加作业所需的JobMapData时,没有触发器/作业数据会插入到表中。
[我的石英配置]
var schedulerConfig = new NameValueCollection
{
{ "quartz.scheduler.instanceName","TaskScheduler" },{ "quartz.scheduler.instanceId",{ "quartz.threadPool.type","Quartz.Simpl.SimpleThreadPool,Quartz" },{ "quartz.threadPool.threadCount","3"},{ "quartz.threadPool.threadPriority","Normal" },{ "quartz.jobStore.misfireThreshold","60000"},{ "quartz.jobStore.type","Quartz.Impl.AdoJobStore.JobStoreTX,{ "quartz.jobStore.useProperties","true" },{ "quartz.jobStore.dataSource","default" },{ "quartz.jobStore.tablePrefix","_QRTZ_" },{ "quartz.jobStore.driverDelegateType","Quartz.Impl.AdoJobStore.SqlServerDelegate,Quartz"},{ "quartz.dataSource.default.connectionString","Server=XXXXXXXXXXX; Database=TaskScheduling;Trusted_Connection=True;MultipleactiveResultSets=true" },{ "quartz.dataSource.default.provider","SqlServer" },{ "quartz.serializer.type","binary"},};
[作业设置]
IJobDetail job = JobBuilder.Create<SendCyrstalReportJob>()
.WithIdentity("SendWorkCenterLoadSummary","TaskSchedulerService")
.WithDescription("Sends the WorkCenterLoadSummary report to a list of email recipients")
.UsingJobdata("parameters","MailCrystalReportAsExcel -reportName \\\\fs5\\Reports\\LoadSummary6WeekForecast.rpt -recipients mailrecipient@addy.com")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("WorkCenterLoadSummaryTrigger","TaskSchedulerService")
.WithCronSchedule("0/10 * * * * ?")
.ForJob("SendWorkCenterLoadSummary","TaskSchedulerService")
.UsingJobdata("command","c:\\CommandConsole\\ecc.exe")
.Build();
_scheduler.ScheduleJob(job,trigger);
_scheduler.ListenerManager.AddJobListener(_jobListener);
提供的代码将导致没有作业/触发数据被添加到数据库中。如果我从两者中都注释掉UsingJobdata,则作业定义和触发器定义将导致作业被调度并随后按预期执行。
没有引发任何错误,没有向日志文件或控制台窗口报告任何指示问题的消息,只是没有数据进入数据库。
有什么想法吗? :-)