1
我正在創建一個正在使用Quartz.NET(使用ADO.NET DB存儲)的項目。有核心組件,即執行作業的組件(此時的控制檯應用程序將是Windows服務)以及多個Web窗體,用戶可以在其中添加作業和編輯作業(將數據圖值編輯爲特定)。在項目中爲多個頁面/應用程序使用Quartz.NET
我在從所有頁面訪問調度程序時遇到了一些問題 - 核心組件和「添加作業」頁面完美無缺,完全沒有問題。但在他們,我基本上是這樣兩個:
NameValueCollection properties = new NameValueCollection();
properties["quartz.scheduler.instanceName"] = "schedService";
properties["quartz.scheduler.instanceId"] = "sched1";
properties["quartz.threadPool.type"] = "Quartz.Simpl.SimpleThreadPool, Quartz";
properties["quartz.threadPool.threadCount"] = "10";
properties["quartz.threadPool.threadPriority"] = "Normal";
properties["quartz.jobStore.misfireThreshold"] = "60000";
properties["quartz.jobStore.type"] = "Quartz.Impl.AdoJobStore.JobStoreTX, Quartz";
properties["quartz.jobStore.useProperties"] = "false";
properties["quartz.jobStore.dataSource"] = "default";
properties["quartz.jobStore.tablePrefix"] = "QRTZ_";
properties["quartz.jobStore.clustered"] = "true";
// if running MS SQL Server we need this
properties["quartz.jobStore.lockHandler.type"] = "Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz";
properties["quartz.dataSource.default.connectionString"] = "Data Source=CHRIS\\SQLEXPRESS;Initial Catalog=Scheduler;Integrated Security=True;Pooling=False";
properties["quartz.dataSource.default.provider"] = "SqlServer-20";
ISchedulerFactory schedService = new StdSchedulerFactory(properties);
IScheduler sched = schedService.GetScheduler();
當我做同樣的編輯頁面,它告訴我,已經有一個名爲此調度。
我知道我可能在做些什麼真的很愚蠢,但是我怎樣才能在我所有的頁面中聲明調度器,這樣我就可以訪問它們了?
感謝哥們,明天我會試一試,讓你知道它是怎麼回事 – Chris 2010-10-21 21:39:56
從[Quartz.NET教程](http://quartznet.sourceforge.net/tutorial/lesson_11.html):每個節點都在集羣必須具有唯一的instanceId,通過將「AUTO」作爲該屬性的值,可以輕鬆完成(不需要不同的屬性文件)。 – 2012-07-25 00:37:16