ruby-on-rails - Sidekiq 邮件程序找不到表格

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

我正在尝试将 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/

相关文章:

ruby-on-rails - Ruby 数组插入神秘字符

ruby-on-rails - 以 JSON 格式 curl POST 请求

ruby-on-rails - 使用 Rails 4 和 postgres 查询范围内日期的最简单方法是什么?

ruby-on-rails - 我应该在 Rails 匹配 :controller(/:action(/:id)) or resources? 中使用哪些路线

html - 自定义样式遵循 HTML 表单选择字段到 Rails 代码

ruby-on-rails - Rspec分配局部变量?

ruby-on-rails - 如何跳过 ruby 中的外循环?

在 HTTPS URL 上调用 Net::HTTP.get 时,Ruby 抛出 Timeout::Error

ruby-on-rails - 设计 - 在开发中跳过用户确认

ruby-on-rails - 使用 open() 方法在 Rails 中创建/重命名临时文件