ruby-on-rails – 将选项哈希传递给sidekiq worker
我记得当我尝试将params(
JSON)选项传递给sidekiq工作方法时它并没有很好用,因为我引用了以下选项:
options[:email_address] 但我认为如果我这样做会有效: options["email_address"] 因此,出于某种原因,当它被序列化和反序列化时,哈希只能用字符串而不是符号来引用. 这是安全的做法吗? 我有一个交易电子邮件工作者,看起来像: class TransactionEmailWorker include Sidekiq::Worker def perform(action,options) case action when 'welcome' welcome(options["email_address"],options["something_else"]) when 'reset_password' reset_password(options["email_address"]) end end def welcome(email,title) # ... end def reset_password(email) # .. end 解决方法
这就是Sidekiq
wiki page所说的:
传递Ruby哈希是有效的,因为它能够序列化为有效的JSON.所以回答你的问题,这是安全的做法. serialized_args = JSON.dump({email_address: "someemailaddress@gmail.com",something_else: "thing"}) => "{"email_address":"someemailaddress@gmail.com","something_else":"thing"}" JSON.load(serialized_args) => {"email_address"=>"someemailaddress@gmail.com","something_else"=>"thing"} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |