我正在尝试将 Sidekiq 与 Ruby on Rails 结合使用以在后台执行一些更新。但是我遇到了一个奇怪的问题
当我将对象 ID 传递给工作人员时,我收到“找不到表任务”错误
这是我的代码,例如:
class PygmentsWorker
include Sidekiq::Worker
def perform(task_id)
task = Task.find(task_id)
task.update_attribute(:body, "well...")
end
end
保存后我调用工作人员。
@task = Task.new(task_params)
respond_to do |format|
if @task.save
PygmentsWorker.perform_at(1.minute.from_now, @task.id)
最佳答案
当你创建一个 Sidekiq 任务时,一些任务信息会被存储在 redis 存储中(默认情况下),记住 redis 不能存储 ruby 实例,所以如果你创建一个带有对象实例参数的任务,所有将被转换为字符串并且对象消失了。
所以如果你想调用一些对象实例,最好传递字符串或数字,然后在 worker 中再次创建或查找对象。
关于ruby-on-rails - Sidekiq 邮件程序找不到表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26796571/