2011-05-17 79 views
0

我現在有一份永不放棄的工作。它涉及爲一些產品品牌運行數據遷移。我應該如何在Rails 3中爲delayed_job構建數據遷移任務?

我有一個名爲MigrationJob的類。它遍歷Brands表中的每條記錄,並在每個記錄中調用一個「遷移」方法,從而將數據從另一個數據庫中移出。

include Migration 

class MigrationJob 

    def perform 

    while true 

     for brand in Brand.all 

     puts "Migrating account #{brand.name}" 

     brand.migrate 

    end 

    end 

end 

但看,我在的delayed_job的整個遷移。這似乎是錯誤的。我是否應該在delayed_job中進行個別品牌的遷移,以便我可以更輕鬆地追蹤失敗?

我真的很喜歡這樣做。但是,我應該在哪裏放置執行不斷遷移的代碼?在耙子任務?

+1

「我有工作,現在」 - 是那個有趣的部分:) – sehe 2011-05-17 20:09:52

回答

1

當你說你有一個delayed_job整個遷移。我假設你的意思是你說'handle_asynchronously'的執行方法。如果你想運行每個個體遷移作爲延遲:

include Migration 

class MigrationJob 

    def perform 

     while true 

     for brand in Brand.all 

     puts "Migrating account #{brand.name}" 

     brand.delay.migrate 

    end 
    end 
end 

現在你可以跟蹤哪些作業的失敗,多久各佔等

相關問題