2
我有一個用ruby寫的模塊,它連接到postgres表,然後應用一些邏輯和代碼。處理軌道中的連接中斷
下面是一個示例代碼:
module SampleModuleHelper
def self.traverse_database
ProductTable.where(:column => value).find_each do |product|
#some logic here that takes a long time
end
end
end
的productTable已經超過300萬條記錄。我使用where子句來縮短檢索的記錄數。
但是我需要使代碼連接證明。有時連接中斷,我必須從頭開始遍歷表。我不想要這個,而是應該從停止的地方開始,因爲每個記錄所花費的時間太多。
什麼是最好的方式,使代碼開始離開的地方?
一種方法是在數據庫中創建一個表,記錄主鍵(id)停在哪裏並從那裏再次啓動。但是我不想在數據庫中創建表格,因爲有很多這樣的過程。
但如何從同一點這個功能的簡歷,如果我再次啓動功能:
的線沿線的東西嗎?每次調用traverse_products時,計數器和重試都初始化爲零。 –
你不需要再次啓動它,因爲它會自己「重試」任何錯誤。你只需要插入正確的錯誤類,因爲我不知道你期望提出什麼樣的錯誤... –
這是偉大的...但我不認爲會符合我的目的。我需要在cron任務中運行一個函數,並且希望它從前一天停止的地方運行。 –