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