ruby-on-rails - 在 heroku 上使用 delayed_job 时很难调试 PG 错误

标签 ruby-on-rails postgresql heroku delayed-job

我正在尝试使用 heroku,似乎遇到了 Postgres 错误,但没有足够的信息知道要修复什么。

错误如下,看起来它正在尝试运行 delayed_job:

> PGError: ERROR:  value too long for
> type character varying(255) : UPDATE
> "delayed_jobs" SET "updated_at" =
> '2010-09-12 01:06:59.354515', "last_e
> rror" = E'undefined method `subject''
> for #<YAML::Object:0x2b19faeca308>

以下是我如何从 cron.rake 调用它:

    Delayed::Job.enqueue SomeMailJob.new(contact,contact_email)

SomeMailJob 是通过这个文件定义的:

 class SomeMailJob < Struct.new(:contact, :contact_email) 
   def perform
     OutboundMailer.deliver_campaign_email(contact,contact_email)
   end
 end

“看起来”像 delayed_jobs 的数据库正试图更新一些奇怪的东西,但我不知道那可能是什么......

最佳答案

当延迟作业工作进程试图存储运行作业的结果时,会发生 postgres 错误(顺便说一句,这是一个单独的错误)。

检查您的 delayed_jobs 表,特别是 last_error 列。它应该是一个 text 列,但看起来你的是一个 string

关于ruby-on-rails - 在 heroku 上使用 delayed_job 时很难调试 PG 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3693360/

相关文章:

Postgresql 选择列 = 数组的行

ruby-on-rails - NoMethodError(#<Elasticsearch::Model::Response::Result> 的未定义方法 `highlight'

ruby-on-rails - 使用 Dokku + nginx + unicorn 的未初始化常量 ActiveRecord (NameError)

python - 如何独立于使用的数据库/引擎捕获错误 1062 "duplicate entry"?

ruby-on-rails - fe_sendauth : no password supplied encountered with Amazon RDS

node.js - 无法使用 Nodemailer 和 Node.js 发送邮件

ruby-on-rails - 您带指纹的 key (...) 无权访问 <yourapp>

ruby - 为什么 Heroku 的 heroku-18 堆栈仅与 Puma 版本 3.7.x 兼容?

mysql - 检查模型范围内是否有 locale_restriction

ruby-on-rails - Rails 从一个邮件程序功能发送 2 封不同的电子邮件