Resque/Rails/Heroku:PG::错误:结果已清除



我正在尝试让resque与heroku一起工作。它可以与我的另一个应用程序一起使用,但我不理解工作日志中的这个错误:

PG::Error: result has been cleared: SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT 1

因此,每当我向队列中添加作业时,一个工作者就会接受该作业并抛出上面的错误。

这是工人阶级:

class Companies
  @queue = :companies
  def self.perform(current_user_id, model)
    @current_user = User.find(current_user_id)
    ... do things with @current_user and model...
  end
end

我使用以下命令调用perform操作:Resque.enqueue(Companies, current_user.id, 'quotes')

此错误消息表示用于与Postgres数据库接口的PGgem中存在内部错误。它表示垃圾回收/内存分配错误,其中执行的postgres查询的结果已在访问时从内存中清除。

像heroku这样的人将不得不对此进行调试,这似乎是一个平台级别的问题。

这通常与共享同一连接的多个进程/线程有关。您是否使用回调(after_forkbefore_hook)为每个作业重新连接到数据库?

有关此方面的详细信息,请参阅:https://stackoverflow.com/a/5519372/66752

最新更新