Sidekiq邮件程序无法找到表格

时间:2014-11-07 07:54:28

标签: ruby-on-rails ruby ruby-on-rails-4 sidekiq

我正在尝试使用Sidekiq和Ruby on Rails在后台执行一些更新。但我遇到了一个奇怪的问题

当我将对象ID传递给worker时,我得到一个'找不到表任务'错误

这是我的代码,例如:

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)

2 个答案:

答案 0 :(得分:0)

当您创建Sidekiq任务时,一些任务信息将存储在redis存储中(默认情况下),请记住redis无法存储ruby实例,因此如果您创建一个带有对象实例参数的任务,则所有任务都将转换为字符串和物体消失。

因此,如果你想调用一些对象实例,最好传递字符串或数字,然后再次在worker中创建或查找对象。

答案 1 :(得分:0)

我是愚蠢的。我在生产环境中意外启动了Sidekiq,同时开发了rails。