【发布时间】:2020-03-20 09:08:18
【问题描述】:
在 v5.2 上运行的 Rails 应用。使用 puma 服务器和 postgres 数据库。未运行作业队列的延迟作业。在 DJ 服务启动时收到以下错误消息并且 DJ 终止但 rake jobs:work 命令正在运行作业而没有任何问题。
RAILS_ENV=development bin/delayed_job start
返回错误信息
E, [2018-06-23T15:43:34.630732 #4316] ERROR -- : 2018-06-23T15:43:34-0700: [Worker(delayed_job host:WA021Z7GTFM pid:4316)] Job UploadSpeechJob (id=2066014) FAILED (0 prior attempts) with ActiveRecord::StatementInvalid: PG::ConnectionBad: PQconsumeInput() server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
: SELECT a.attname, format_type(a.atttypid, a.atttypmod),
pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod,
c.collname, col_description(a.attrelid, a.attnum) AS comment
FROM pg_attribute a
LEFT JOIN pg_attrdef d ON a.attrelid = d.adrelid AND a.attnum = d.adnum
LEFT JOIN pg_type t ON a.atttypid = t.oid
LEFT JOIN pg_collation c ON a.attcollation = c.oid AND a.attcollation <> t.typcollation
WHERE a.attrelid = '"asset_files"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
此问题在所有环境中都存在。我曾尝试重新启动 DJ,但没有成功。 作为一种解决方法,我正在使用此命令。
RAILS_ENV=development rake jobs:work
应用程序最近从 4.2 迁移到 5.2。延迟作业是否支持 rails v5.2。有人能指出我正确的方向吗?
【问题讨论】:
-
该查询只是询问asset_files 表中列的类型。您可以在该表上尝试
reindex tablevacuum_full或cluster,但这可能无济于事。你能做数据库备份吗? -
最近在本地环境中加载了备份。
-
我确定,这不是asset_files 索引的问题。截断表并重置索引,但没有运气。
-
你解决了吗?我遇到了类似的问题,延迟的作业对我来说根本没有运行,我也不知道如何调试
标签: ruby-on-rails postgresql delayed-job