0
看來我的sidekiq客戶端中間件中的yield
後面的代碼沒有執行。沒有例外被提出(我陷入了這種情況),所以我無法想象代碼是如何被跳過的(lambda裏面沒有任何返回)。誰能解釋爲什麼?這裏的中間件代碼:Sidekiq客戶端中間件缺少「後」代碼?
class SidekiqClientWorkless
def initialize(options = nil)
end
def call(worker, msg, queue)
Log.create!(task: "testing", message: "This message gets logged")
begin
yield
rescue Exception => e
require 'ruby-debug'
debugger
end
Log.create!(task: "testing", message: "This message does not get logged")
end
end
Sidekiq.configure_client do |config|
config.redis = { :url => 'redis://user:[email protected]:9725/',
:namespace => 'mynamespace' }
config.client_middleware do |chain|
chain.add SidekiqClientWorkless, :foo => 1, :bar => 2
end
end