2010-09-29 4 views
5

Я использую Quartz.NET с базой данных, то есть ADO.NET. Проблема в том, что когда мои задания создаются, они вообще не сохраняются в базе данных. Я все правильно настроил? Я использую SQL Server Express, и путь к моей базе данных - «chris \ sqlexpress.Quartz.dbo».ADO.NET с Quartz.NET

Соответствующие части конфигурационного файла:

quartz.jobStore.type = Quartz.Impl.AdoJobStore.JobStoreTX, Quartz 
quartz.jobStore.dataSource = default 
quartz.jobStore.tablePrefix = QRTZ_ 
quartz.jobStore.clustered = true 
quartz.jobStore.lockHandler.type = Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz 
quartz.jobStore.driverDelegateType = Quartz.Impl.AdoJobStore.SqlServerDelegate, Quartz 
quartz.dataSource.default.connectionString = 
Server=localhost;Database=Quartz;Trusted_Connection=True;"; 
quartz.dataSource.default.provider = SqlServer-20 
quartz.jobStore.useProperties = true 

планировщик initilisation и аддитивные работы:

ISchedulerFactory schedService = new StdSchedulerFactory(); 
IScheduler sched = schedService.GetScheduler(); 

JobDetail jobDetail = new JobDetail("1", "1", typeof(copyJob)); 
jobDetail.JobDataMap["initialPath"] = initpath; 
jobDetail.JobDataMap["targetPath"] = targetpath; 
jobDetail.JobDataMap["regex"] = regex; 

CronTrigger trigger = new CronTrigger("trigger1", "group1", "1", "1", TextBox4.Text); 
sched.AddJob(jobDetail, true); 
DateTime ft = sched.ScheduleJob(trigger); 
ft = TimeZoneInfo.ConvertTimeFromUtc(ft, trigger.TimeZone); 

Response.Write(string.Format("{0} has been scheduled to run at: {1} and repeat based on expression: {2}", jobDetail.FullName, ft.ToString("r"), trigger.CronExpressionString)); 

ответ

5

Правые, работал его для тех, кто нуждается в помощи. Моя строка подключения была неправильной, и мне пришлось жестко кодировать информацию о сервере, как в примере 13 в примерах Quartz.NET. Это отличная рамка :)

4

У меня были схожие проблемы с этим, и раздел web.config, казалось бы, игнорировался, если я по какой-то причине не закодировал свойства. Мне это не понравилось, поэтому в конце я написал код для загрузки свойств из файла web.config и вместо этого установил их в свой класс StdSchedulerProvider.

//force the properties to be loaded from the web.config section 
      NameValueCollection quartzSection = (NameValueCollection)ConfigurationManager.GetSection("quartz"); 
      if (quartzSection != null) 
      { 
       var quartzProperties = quartzSection.AllKeys.SelectMany(quartzSection.GetValues, (k, v) => new { key = k, value = v }); 

       foreach (var property in quartzProperties) 
       { 
        properties.Add(property.key, property.value); 
       } 
      } 

Мой web.config раздел, как это:

<configSections> 
    <section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" /> 
    </configSections> 

    <quartz> 
     <add key="quartz.scheduler.instanceName" value="SchedulingPOC"/> 
     <add key="quartz.scheduler.instanceId" value="SchedulingPOC"/> 

     <!-- Configure Thread Pool --> 
     <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" /> 
     <add key="quartz.threadPool.threadCount" value="10" /> 
     <add key="quartz.threadPool.threadPriority" value="Normal" /> 

     <!-- Configure Job Store --> 
     <add key="quartz.jobStore.misfireThreshold" value="60000" /> 
     <add key="quartz.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz" /> 
     <add key="quartz.jobStore.useProperties" value="true" /> 
     <add key="quartz.jobStore.dataSource" value="default" /> 
     <add key="quartz.jobStore.tablePrefix" value="QRTZ_" /> 
     <add key="quartz.jobStore.lockHandler.type" value="Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz" /> 

     <add key="quartz.dataSource.default.connectionString" value="Server=.\SQLExpress;Database=QuartzPOC;Trusted_Connection=True;"/> 

     <add key="quartz.dataSource.default.provider" value="SqlServer-20" /> 
     </quartz> 

Quartz.net затем начал вход в базу данных, как я хотел. Не знаю, почему так сложно заставить эту работу работать.

+0

- Кварц ищет раздел '' и загружает объекты оттуда так неуверенно, почему у вас есть код, чтобы повторить это? Возможно, более старая версия? –

Смежные вопросы