Der Versuch, einen Job mit delayed_job Warteschlange wie folgt:Sonderbare Ausnahme mit delayed_job
Delayed::Job.enqueue(BackgroundProcess.new(current_user, object))
current_user und Objekt sind nicht gleich Null, wenn ich sie ausdrucken. Das Seltsame ist, dass manchmal das Aktualisieren der Seite oder das Ausführen des Befehls funktioniert! Hier
ist die Ausnahme-Trace:
Delayed::Backend::ActiveRecord::Job Columns (44.8ms) SHOW FIELDS FROM `delayed_jobs`
TypeError (wrong argument type nil (expected Data)):
/Users/.rvm/rubies/ruby-1.9.1-p378/lib/ruby/1.9.1/yaml.rb:391:in `emit'
/Users/.rvm/rubies/ruby-1.9.1-p378/lib/ruby/1.9.1/yaml.rb:391:in `quick_emit'
/Users/.rvm/rubies/ruby-1.9.1-p378/lib/ruby/1.9.1/yaml/rubytypes.rb:86:in `to_yaml'
vendor/plugins/delayed_job/lib/delayed/backend/base.rb:65:in `payload_object='
activerecord (2.3.9) lib/active_record/base.rb:2918:in `block in assign_attributes'
activerecord (2.3.9) lib/active_record/base.rb:2914:in `each'
activerecord (2.3.9) lib/active_record/base.rb:2914:in `assign_attributes'
activerecord (2.3.9) lib/active_record/base.rb:2787:in `attributes='
activerecord (2.3.9) lib/active_record/base.rb:2477:in `initialize'
activerecord (2.3.9) lib/active_record/base.rb:725:in `new'
activerecord (2.3.9) lib/active_record/base.rb:725:in `create'
vendor/plugins/delayed_job/lib/delayed/backend/base.rb:21:in `enqueue'
Vielen Dank das hat mein Problem gelöst – Tam
Serialisierung des ursprünglichen Objekts ist keine schreckliche Sache zu tun. Man sollte immer eine neue Kopie während der Arbeit ziehen; Sie haben jedoch die Möglichkeit, bei Bedarf eine vorherige Kopie des Datensatzes anzuzeigen. – Nick