我現在正在與Qrtz合作,並發現許多次子作業未在母版作業執行後自動啓動。我調查了QRTZ庫中由log4j生成的日誌。我們發現表「qrtz_simple_triggers」中有一個觸發器丟失問題。自從Mother作業將觸發器插入到表「qrtz_triggers」之後發生了問題,然後立即將數據插入到「qrtz_simple_triggers」中。但對我而言,在完全插入表中的simeple觸發器期間,有一段時間延遲了約1秒,同時,從「線程池」到「更新」表中的「qrtz_triggers」中的觸發器狀態從「WAITING」在母工作沒有完成將觸發器插入「qrtz_simple_triggers」的時候「獲取」。所以,主線程在表中找不到簡單的觸發器,然後停止工作。 (對於那個孩子工作)石英:觸發器表插入方法
我的觀點是如何防止這種情況?我認爲這兩個插入語句不在同一個trasaction中。我現在正在對此進行調查,並假設將這些語句合併到同一事務中的解決方案。你會帶給我更多的想法嗎?
由於提前, 停止:)
如何交易在您的應用程序進行管理,您使用春天來管理交易? – blob
是Blob,但我不確定QRTZ如何管理其數據庫連接。是否爲每個爲工作作業打開的連接設置了自動提交。我也在爲此進行調查。 –
僅供參考,我正在使用QRTZ版本。 1.8.6 :) –