小编rmo*_*lgo的帖子

rake jobs:work给出了"PGError:错误:子查询中不允许选择UPDATE/SHARE"

我正在合并我的Rails应用程序的一些更改,其中包括添加delayed_job gem(看起来很棒).为了测试它,我:

  • rails g delayed_job
  • ran rake db:migrate,创建了delayed_jobs表
  • 重启rails server(以防万一)
  • 重启postgresql服务(以防万一)
  • scripts/delayed_job start
  • 执行了一些任务以产生延迟的工作

但没有任何反应:/我的工作在延迟的作业表中,但是locked_at为空(原样last_error).

所以我尝试了rake jobs:work,这给了一个奇怪的Postgres错误:
PGError: ERROR: SELECT FOR UPDATE/SHARE is not allowed in subqueries 并且跟踪:

$ rake jobs:work
[Worker(host:robert-vaio pid:21217)] Starting job worker
rake aborted!
PGError: ERROR:  SELECT FOR UPDATE/SHARE is not allowed in subqueries
: UPDATE "delayed_jobs" SET locked_at = '2013-02-13 19:53:46.803085', locked_by = 'host:robert-vaio pid:21217' WHERE id IN (SELECT  id FROM "delayed_jobs"  WHERE ((run_at …
Run Code Online (Sandbox Code Playgroud)

delayed-job postgresql-8.4 ruby-on-rails-3.2

5
推荐指数
2
解决办法
1199
查看次数