ruby-on-rails - 如何解决延迟作业中的反序列化错误?

标签 ruby-on-rails delayed-job deserialization

我正在尝试使用DelayedJob并且作业失败,在数据库中给出以下错误:

{Delayed::DeserializationError
/library/Ruby/Gems/1.8/gems/delayed_job-2.1.3/lib/delayed/serialization/active_record.rb:7:在`yaml_new'中
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/yaml.rb:133:在`transfer'中
/system/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/yaml.rb:133:在`node_import'中
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/yaml.rb:133:在`load'中
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/yaml.rb:133:在`load'中
/Library/Ruby/Gems/1.8/gems/delayed_job-2.1.3/lib/delayed/backend/base.rb:79:在'payload_object'中
/库/Ruby/Gems/1.8/gems/delayed_job-2.1.3/lib/delayed/backend/base.rb:87:in`invoke_job_without_newrelic_transaction_trace'
(eval):3:in`invoke_job'
/Library/Ruby/Gems/1.8/gems/newrelic_rpm-2.13.4/lib/new_relic/agent/instrumentation/controller_instrumentation.rb:252:in`perform_action_with_newrelic_trace'
/Library/Ruby/Gems/1.8/gems/newrelic_rpm-2.13.4/lib/new_relic/agent/method_tracer.rb:141:在`trace_execution_scoped'中
/Library/Ruby/Gems/1.8/gems/newrelic_rpm-2.13.4/lib/new_relic/agent/instrumentation/controller_instrumentation.rb:247:in`perform_action_with_newrelic_trace'
(eval):2:in`invoke_job'
/库/Ruby/Gems/1.8/gems/delayed_job-2.1.3/lib/delayed/worker.rb:120:在`run'中
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb:62:in`timeout'
/库/Ruby/Gems/1.8/gems/delayed_job-2.1.3/lib/delayed/worker.rb:120:在`run'中
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/benchmark.rb:308:“实时”
/库/Ruby/Gems/1.8/gems/delayed_job-2.1.3/lib/delayed/worker.rb:119:在`run'中
/库/Ruby/Gems/1.8/gems/delayed_job-2.1.3/lib/delayed/worker.rb:177:在`reserve_and_run_one_job'中
/Library/Ruby/Gems/1.8/gems/delayed_job-2.1.3/lib/delayed/worker.rb:104:in`work_off'
/Library/Ruby/Gems/1.8/gems/delayed_job-2.1.3/lib/delayed/worker.rb:103:in`times'
/Library/Ruby/Gems/1.8/gems/delayed_job-2.1.3/lib/delayed/worker.rb:103:in`work_off'
/库/Ruby/Gems/1.8/gems/delayed_job-2.1.3/lib/delayed/worker.rb:78:在'开始'中
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/benchmark.rb:308:“实时”
/库/Ruby/Gems/1.8/gems/delayed_job-2.1.3/lib/delayed/worker.rb:77:在'开始'中
/Library/Ruby/Gems/1.8/gems/delayed_job-2.1.3/lib/delayed/worker.rb:74:在`loop'中
/库/Ruby/Gems/1.8/gems/delayed_job-2.1.3/lib/delayed/worker.rb:74:在'开始'中
/库/Ruby/Gems/1.8/gems/delayed_job-2.1.3/lib/delayed/tasks.rb:9
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in`call'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in`execute'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:在`each'中
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:在'execute'中
/library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in`invoke_with_call_chain'中
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/monitor.rb:242:在'synchronize'中
/library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in`invoke_with_call_chain'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in`invoke'
/library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in`invoke_task'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:在'top_level'中
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in`each'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:在'top_level'中
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:在`standard_exception_handling'中
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:在'top_level'中
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in`run'
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:在`standard_exception_handling'中
/Library/Ruby/Gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:在`run'中
/库/Ruby/Gems/1.8/gems/rake-0.8.7/bin/rake:31
/ usr / bin / rake:19:在`load'中
/ usr / bin / rake:19

不确定从哪里开始进行诊断。这以前从未发生过,我使用延迟作业来序列化模型对象没有任何问题。为什么这次呢?

提前致谢!

最佳答案

这不是真正的反序列化错误,而是在简单的Model.find(id)查询上的ActiveRecord记录未找到错误。

如果您想知道详细信息,则在延迟作业愚蠢地举起delayed_job-2.1.3/lib/delayed/serialization/active_record.rb并扔掉有用的信息之前,将它们记录在救援语句中的DeserializationError文件中。

关于ruby-on-rails - 如何解决延迟作业中的反序列化错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5023231/

相关文章:

css - Rails - @import 和 *= require 之间的区别?

ruby-on-rails - 在引擎厂中设置环境变量

ruby-on-rails - 使用 Heroku 和 PostgreSQL,我还需要 Nginx 吗?

ruby-on-rails - 用Dokku开始delayed_job

ruby-on-rails - 为什么我的 delayed_job 在没有 RVM 的情况下会失败?

c# - 用于在 SQL Server 中查询 JSON 字符串的 Entity Framework

ruby-on-rails - 撤消 rails 会产生设计 View

ruby-on-rails-3 - Delayed::Worker.new.work_off 是否会在未来的 run_at 时间执行作业?

c# - 我可以在属性中指定路径以将我的类中的属性映射到我的 JSON 中的子属性吗?

c# - 在处理程序中将 Json 反序列化为 Object