2013-08-06 43 views
0

Quartz.net和我似乎並沒有同樣的想法。請幫忙。 我將Quartz作爲Windows服務運行。 我將在我的SQL服務器上安裝Ado Jobstore。 我將有連接字符串設置,允許Quartz訪問jobstore。 我將有一個觸發作業數據映射(存儲在jobstore中?)。Quartz.net存儲過程和更多的設置

我看到我可以設置一個作業名稱,並且可以存儲作業數據映射鍵/值對,例如我可以存儲一個存儲的proc名稱和一個參數。到現在爲止還挺好。我還看到,我可以編寫實現iJob的代碼,並從中獲取關鍵字/值。然後我的代碼可以用標準的ADO代碼調用存儲過程。我可以用web服務名稱和參數做類似的事情,我的自定義代碼將調用服務。

這是我的問題: 1)我真的必須創建一個單獨的代碼段來執行存儲過程或Web服務嗎?我認爲像Quartz這樣複雜的東西可以「本地」處理對存儲過程,Web服務,可能執行的ftp命令的調用等。我不應該在尋找無代碼解決方案嗎?

2)假設我必須編寫自己的「做工作」代碼,我該在哪裏放置該代碼?我是否編譯成DLL並放置在某個地方?我如何告訴Quartz在哪裏查找我的DLL?我該如何將配置中的作業名稱與我的DLL中的類關聯起來?我只是使用作業名稱設置作爲我班的實際名稱?

謝謝!

+0

謝謝,我閱讀文檔並沒有發現爲了被拾取而需要放置DLL的文件夾的引用。我發現的所有引用都提到可以遠程訪問DLL,而不是直接訪問。如果你把你的答案作爲一個單獨的帖子,我可以將它們標記爲答案。 –

回答

0

1)是的,你仍然需要編寫單獨的工作課程。

2)你所有的班級所要做的就是實現IJob接口,調度程序會將其選中。閱讀文檔。

0

Quartz是一個調度程序,它是它的全部功能,它很好。它不會「本地」處理對存儲過程,Web服務或ftp命令的調用。您必須編寫代碼在您的類中實現IJob,並按Quartz按您指定的時間表實例化。

要做的最好的事情是創建一個單獨的類庫(DLL),您將從您的應用程序引用它創建一個Quartz調度程序實例併爲其提供一個需要實例化的類的完全限定名稱(例如MyLibrary.MyNameSpace.MyClass),它會實例化的時間表類和執行類的重寫Execute()方法找到你的代碼...

就這麼簡單......