yield
sidekiq クライアント ミドルウェアのコード AFTER が実行されていないようです。例外は発生しませんでした(私はそれをトラップしています)ので、コードがどのようにスキップされているか想像できません(ラムダ内でも戻りません)。誰でも理由を説明できますか?ミドルウェア コードは次のとおりです。
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:pwd@barb.redistogo.com:9725/',
:namespace => 'mynamespace' }
config.client_middleware do |chain|
chain.add SidekiqClientWorkless, :foo => 1, :bar => 2
end
end