我在Heroku上用Sidekiq/Redis運行Rails 5.0.x應用程序,並且我部署了一個新的代碼,用於多次重試的失敗的Sidekiq作業應該使用。如何使用新的生產Rails代碼使失敗的sidekiq作業重試?
在https://github.com/mperham/sidekiq/wiki/FAQ,我看到:
Rails有兩個特點,其相關此處預先加載和自動加載 。自動加載僅在開發模式下有效,並且不是 線程安全,因此Sidekiq禁用它並僅使用預加載。 Eager 在啓動服務器時,只加載一次您的代碼 - 它的確不會在作業之間重新加載代碼 。如果你已經找到的 外部的代碼標準導軌目錄(如應用程序/模型,應用程序/控制器, 等),Sidekiq不會看到它,除非你添加的路徑, eager_load_paths在你的Rails應用程序配置:
# in config/application.rb
module AcmeCorp
class Application < Rails::Application
config.eager_load_paths += ["#{config.root}/lib/workers"]
end
end
「因爲Sidekiq不會在作業之間重新加載代碼」,這是否意味着我無法在不開始新作業的情況下使用新的rails生產代碼?或者,如果我重新啓動失敗的作業,它會使用新部署的代碼嗎?
嗯..我想知道爲什麼我的Sidekiq重試似乎是根據我們的錯誤報告系統使用舊代碼? – Nona