2011-06-10 15 views
6

देरी हुई नौकरी (2.1.4) समलैंगिक विकास के साथ ईमेल भेजकर, मेरी विकास मशीन पर पूरी तरह से काम कर रही है - हालांकि यह अपाचे/पैसेंजर (3.0.7) का उपयोग कर मेरे सर्वर पर चलते समय बुरी तरह विफल हो रही है। । दोनों बीटीडब्ल्यू पर रेल 3.0.7 और रूबी 1.9.2।देरी नौकरी एक अपरिभाषित विधि त्रुटि

मैंने देखा है वहाँ जहां काम इस तरह बनाई गई है एक समस्या है जब पतली उपयोग कर रहा है कि:

--- !ruby/struct:Delayed::PerformableMailer 
object: !ruby/object:Class UserMailer 

जब यह पढ़ना चाहिए:

--- !ruby/struct:Delayed::PerformableMailer 
object: !ruby/class UserMailer 

मेरा सही ढंग से मेरे विकास मशीन पर बनाए जाते हैं , लेकिन सर्वर पर बनाए गए गलत तरीके से।

क्या किसी और को यह समस्या है, मुझे कहां दिखना शुरू करना चाहिए?

स्टैकट्रेस: ​​

{undefined method `standard_message' for #<Class:0xc6ad054> 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/performable_mailer.rb:6:in `perform'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/backend/base.rb:87:in `invoke_job'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:120:in `block (2 levels) in run'\n 
/usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/timeout.rb:57:in `timeout'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:120:in `block in run'\n 
/usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:119:in `run'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:177:in `reserve_and_run_one_job'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:104:in `block in work_off'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:103:in `times'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:103:in `work_off'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:78:in `block (2 levels) in start'\n 
/usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:77:in `block in start'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:74:in `loop'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/worker.rb:74:in `start'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/command.rb:104:in `run'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/command.rb:83:in `block in run_process'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/daemons-1.1.3/lib/daemons/application.rb:249:in `call'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/daemons-1.1.3/lib/daemons/application.rb:249:in `block in start_proc'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/daemons-1.1.3/lib/daemons/daemonize.rb:199:in `call'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/daemons-1.1.3/lib/daemons/daemonize.rb:199:in `call_as_daemon'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/daemons-1.1.3/lib/daemons/application.rb:253:in `start_proc'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/daemons-1.1.3/lib/daemons/application.rb:293:in `start'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/daemons-1.1.3/lib/daemons/controller.rb:70:in `run'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/daemons-1.1.3/lib/daemons.rb:195:in `block in run_proc'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/daemons-1.1.3/lib/daemons/cmdline.rb:109:in `call'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/daemons-1.1.3/lib/daemons/cmdline.rb:109:in `catch_exceptions'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/daemons-1.1.3/lib/daemons.rb:194:in `run_proc'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/command.rb:81:in `run_process'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/command.rb:75:in `block in daemonize'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/command.rb:73:in `times'\n 
/home/safrea/site/shared/bundle/ruby/1.9.1/gems/delayed_job-2.1.4/lib/delayed/command.rb:73:in `daemonize'\n 
script/delayed_job:5:in `<main>' 
+0

मुझे नहीं पता कि नौकरी अलग-अलग क्यों बनाई जाएगी (शायद वर्गों को उड़ा दिया गया है और देव में फिर से लोड किया गया है) लेकिन वास्तव में आपको क्या त्रुटि मिलती है? क्या आपने "उत्पादन" मोड में स्थानीय रूप से चलने का प्रयास किया है? शायद एक स्टैकट्रैक पोस्ट करें। –

+0

मुझे 3.0.6 से 3.0.9 रेल तक अपग्रेड करने में समस्या है। 3.0.6 (1.9.2 के साथ) ठीक काम करता है। – KirylP

+1

मेरा समाधान हैंडलर कक्षा में 'टैगुरी' फ़ंक्शन को फिर से परिभाषित करना है। http://stackoverflow.com/questions/6286432/delayed-job-in-rails-failing/6776593#6776593 – KirylP

उत्तर

4

मैं इसे ठीक करने में कामयाब रहे है।

मैंने कुछ हफ्ते पहले setup_load_paths.rb बनाया था जब बंडलर ने किसी कारण से काम करना बंद कर दिया था। इसका मतलब यह था कि यात्री को छोड़कर, हर जगह रत्न को लोड किया जा रहा था। इसने YAML :: ENGINE.yamler = "syck" पर कॉल को गड़बड़ कर दिया जो कि ऑब्जेक्ट की बचत को उलझाता है।

मैंने setup_load_paths को हटा दिया और सबकुछ अब अच्छी तरह से काम कर रहा है।

+0

मैं इस मुद्दे को काफी समय से डिबग कर रहा हूं, फिर इस पर ठोकर खाई! अति उत्कृष्ट! – coneybeare

+0

लेकिन यह setup_load_paths.rb क्या करता है? मेरे पास यह नहीं है लेकिन अभी भी इस समस्या का सामना कर रहा है। उसमें क्या था? – meta

0

यदि सिंक पार्सर का उपयोग करना प्रतीत नहीं होता है (जैसे मार्क के उत्तर में उल्लिखित), तो इसके बजाय मन पार्सर का उपयोग करने का प्रयास करें।

YAML::ENGINE.yamler = "psych" 
संबंधित मुद्दे