【发布时间】:2017-01-11 16:36:54
【问题描述】:
我想将繁重的方法放到后台作业中。 Rails 5 ActiveJob 或 Redis 的使用。不确定我应该使用哪一个。
基本上会有一个 API 使用 gem 并将该 API 调用中的内容填充到我的本地数据库中。
控制器:
...
before_action :get_api
def do_later
GetApiJob.perform_later(foo)
# Call foo later
end
def foo
@apis.map do |api|
puts api.title
end
end
private
def get_api
@apis = ShopifyAPI::Product.find(:all)
end
...
GetApiJob:
...
queue_as :default
def perform(a)
a
# Expect to see a list, if any, of api's name
end
...
当我调用do_later 时,它会将foo 放入后台作业。执行该示例代码,我得到:
ActiveJob::SerializationError
我应该为此使用 Sidekiq 吗?
【问题讨论】:
-
你能发布你的实际代码吗?
-
@MichałMłoźniak 嗨,谢谢。使用 shopify api 更新的代码。仅此一项,您应该会看到相同的错误。
标签: ruby-on-rails ruby ruby-on-rails-5