2013-07-03 75 views
1

我與一家開始使用Grails 1.3.7(是的,過時的,因爲這是供應商支持的唯一版本)和Groovy的公司合作。我們希望將我們的系統建立在grails上,以運行批處理數據庫作業,並最終實現Web界面。將批處理數據庫作業寫入grails並按定期計劃運行的習慣用法是什麼?最好沒有插件,有沒有辦法?Grails批量作業

或者,我們是否應該只使用groovy腳本來運行批處理作業並將它們放入舊式cron作業中,如果是這樣,我們如何從WAR文件或tomcat服務器(通過JNDI)提取數據庫連接?我製作了一些簡單的groovy腳本,它們通過硬編碼的數據庫信息連接到我們的Oracle數據庫,但可能不想這樣做。

也許有一本很好的初學者書可以讓我熟悉Grails嗎?

感謝,

湯姆

+0

我打賭你可以通過搜索找到Grails書。無論現在對你來說這是不錯的選擇......值得商榷。這聽起來並不像你真的能夠使用它。 –

+3

似乎Grails可能不是這份工作的最佳工具。 Grails用於編寫Web應用程序,而不用管理數據庫作業。 –

回答

1

石英插件是要走的路。但是,如果您必須堅持不使用該插件,則仍然可以將石英罐本身添加到項目的類路徑中(通過編輯BuildConfig.groovy)並使用Spring's support for talking to Quartz

反過來,您可以讓Grails與Spring溝通,如described in the Grails manual。這也適用於Grails 1.3.x

+0

啊,最有幫助的答覆呢,謝謝漢斯!我會研究一下。我會迴應你的回答,但是它告訴我我需要15的聲望,而且我是新來的stackoverflow。 – tnichol

+0

很高興幫助...並總是有選項標記我的回答作爲答案:) –

2

您對不支持Grails的2倍,而不是想要使用的插件聲明令人震驚,提高紅旗。如果你不能使用特定的框架,因爲它可能會被使用,也許還有其他的替代方案對你更好......說了這些,我鼓勵你使用最新版本的Grails,因爲它帶來了好處。以及未來更好的支持。

就運行數據庫批處理作業而言..也許最好的辦法就是從數據庫運行它們。 Oracle DB有一個很好的作業調度程序

如果您確實需要按計劃運行服務器端代碼,那麼我會建議使用Quartz plugin。這是非常容易安裝和使用,並具有相當不錯的文檔。

+0

感謝您的回覆!我沒有說我不會使用插件,我只是希望有沒有辦法。如果石英插件非常棒,我一定會考慮它。據我所知,Groovy和Grails主要是網絡,儘管在搜索批量作業的人員時也發現了大量實例。事實上,Spring有一個批量插件,我會研究,所以我不買Grails對於批處理不好。至於Grails的書,是的,我做了一個搜索,我發現了很多書。現在要找到最適合我的是難的部分... – tnichol

+0

至於不支持Grails 2x,我們受到供應商提供我們購買的軟件包的限制。雖然他們目前正在努力讓他們的產品獲得2倍的認證,但我不會繼續推進,直到他們獲得認證並提供支持。我們的應用程序仍然需要工作,無論我在批量處理什麼。雖然我同意這不是最佳的,但它是什麼。當我們準備好時,我們可以移動到2x。 – tnichol

+2

@ user2544740在Quartz插件的另一個投票中,我在幾個項目中廣泛地使用它來管理許多重疊的異步作業(主要監視web應用程序管理的外部資源的健康狀況),它從來沒有讓我失望。在我看來,Grails完全是關於插件生態系統的 - 記住,即使顯然像Hibernate(用於數據庫訪問)這樣的核心內容也是作爲插件來實現的。 –

0

這很難,因爲你不想使用插件,因爲石英很容易使用,並且會滿足你的需求。

你可以嘗試這種黑客作爲替代。創建一個包含批處理作業邏輯的服務,然後創建一個調用該服務的控制器操作。

然後從您的操作系統創建一個cron作業,調用該控制器操作。也許使用wget或自定義書寫。這只是我能想到的破解,而不是好的和安全的。