是否可以将 Blocks 或 Procs 作为参数发送给 Sidekiq?

Nic*_*ill 2 ruby ruby-on-rails sidekiq

我有一个标准系统可以对不同的数据集进行计算。最好的是我可以将这些计算作为 Proc 传递给 perform 方法。这是我想要完成的:

class Calculator
    include Sidekiq::Worker

    def perform rails_model , rails_model_id
         obj = Kernel.const_get( rails_model ).find( rails_model_id )
         yield( obj )
    end
end

Calculator.perform_asyc( "User" , 123 , { |u| u.do_something } )
Run Code Online (Sandbox Code Playgroud)

这种事情是可能的还是不好的做法?我知道直接发送对象是不好的做法,所以我假设发送块也是一个坏主意?

Jör*_*tag 5

这不可能。Ruby 中没有代码的序列化格式,只有数据。