2016-10-24 34 views
0

我正在使用QueSequel寶石,我很感興趣的是如果編寫需要處理大量數據的作業是安全的,那麼可以安全地放置在數據庫事務中的數據太多,比如導入/導出定期80k +行(我目前正在處理1k記錄事務批處理記錄)。編寫可處理大量數據的作業是否安全?

我擔心的是,如果gem/postgres圍繞後臺工作程序執行某種隱式事務,可能會使回滾段失控並使數據庫崩潰在一個糟糕的地獄中。

之所以我問這是,這條線從文檔:

安全 - 如果一個Ruby進程死亡,它的工作的工作不會丟失,或在鎖定或左模棱兩可的狀態 - 他們立即可供任何其他工人接受。

與我這個尖叫「嵌套在一個事務」,如果我的恐懼是真實的可能導致默默地包裝我的80K記錄到同一個回滾段。我可以在我的筆記本電腦上試用它,但是我的筆記本電腦遠遠強於生產虛擬機,所以我擔心它可能會成功地在我的開發環境中癱瘓,然後在部署中發生光榮崩潰。

有人可以通過類似的Que經驗幫忙嗎?

鏈接:the same question on GH

回答

0

由闕開發者回答:

有圍繞每個作業沒有隱性交易 - 即保證通過與諮詢鎖鎖定的作業ID提供。如果客戶端連接丟失,Postgres負責爲我們發佈諮詢鎖,無論事務狀態如何。