Sidekiq:perform_async中的参数以字符串形式发送,而不是以实际对象或ActiveRecord :: Relation

问题描述 投票:0回答:2

在用SidekiqWorker的perform_async替换ActiveJob的perform_later调用时,我以前作为对象和ActiveRecord :: Relation传递的参数现在作为String发送。这是预期的,并且同步不支持ruby对象,或者我缺少某些东西吗?

ruby-on-rails sidekiq rails-activejob
2个回答
0
投票

这是预期的并且同步不支持ruby对象,因为sidekiq与redis一起使用,并且redis和rails应用程序的内存不共享。

Check Wiki


0
投票

这是预期的。由于Sidekiq使用Redis作为数据存储,因此参数需要可序列化。

根据Sidekiq wiki,参数必须是简单的JSON数据类型(数字,字符串,布尔值,数组,哈希)。如果要使用ActiveRecord对象,则可以将其ID作为参数传递]

© www.soinside.com 2019 - 2024. All rights reserved.