मैंने ईमेल भेजने और पृष्ठभूमि नौकरियों को संसाधित करने के लिए रेल 4 आवेदन में साइडकीक सेट किया है। मैंने यह भी तैयार किया है कि मैं devise_async और एक ठेठ संपर्क फ़ॉर्म ईमेलर का उपयोग कर रहा हूं। मैं ईमेल भेजने के लिए जीमेल का उपयोग कर रहा हूं।साइडकीक और रेल 4 एक्शनमेलर कभी भी ईमेल वितरित नहीं करता
अगर मैं साइडकीक को हटा देता हूं, तो यह सामान्य रूप से जीमेल (दोनों तैयार और संपर्क फ़ॉर्म) के माध्यम से ईमेल भेजता है, लेकिन जब मैं इसे सक्षम कर रहा हूं, तो यह काम नहीं करता है (न ही devise_async न तो संपर्क फ़ॉर्म)। साइडकीक दिखाता है कि पृष्ठभूमि की नौकरियां शुरू होती हैं और सफलतापूर्वक समाप्त होती हैं (मैं उन्हें उन साइनरा ऐप के माध्यम से भी देखता हूं जिन्हें संसाधित किया गया है) लेकिन ईमेल कभी वितरित नहीं किया गया था।
विकास में, कंसोल दिखाता है कि ईमेल भेजे गए (devise_async और संपर्क फ़ॉर्म से दोनों, क्योंकि उन्हें सफलतापूर्वक साइडकीक के साथ संसाधित किया जाता है)।
क्या मैं पहले से ही कोशिश की है की है:
- मैं sidekiq की rails4 के लिए GitHub शाखा जोड़ दिया है (मैं भी गुरु की कोशिश की है)
- मैं नवीनीकृत किया है और जांच redis संस्करण से अधिक 2.4 हो (यह 2.6.14 है)
- मैं
bundle exec sidekiq
लेकिन कुछ भी काम किया साथ sidekiq चल रहा हूँ। मैं ruby 2.0.0-p247 का उपयोग कर रहा हूँ।
मैंने इस ऐप में साइडकीक के साथ छवि प्रसंस्करण भी सेट किया है और विकास और उत्पादन दोनों में पूरी तरह से काम करता है।
मैं कुछ भी कल्पना नहीं कर रहा हूँ, लेकिन मैं पूरा करने के लिए कोड जोड़ने हूँ:
मेरे मेलर कोड:
def send_message
@message = Message.new(message_params)
if @message.save
ContactMailer.delay.contact_form(@message.id)
end
end
मेरे मेलर:
def contact_form(message_id)
message = Message.where(id: message_id).first
@email = message.email
@message = message.text
mail(to: "[email protected]", subject: "Message from contact form")
end
और उत्पादन के लिए मेरी विन्यास (जो यह साइडकीक के बिना काम करता है):
config.action_mailer.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:domain => "gmail.com",
:authentication => "plain",
:enable_starttls_auto => true,
:user_name => "myusername",
:password => "mypassword"
}
config.action_mailer.default_url_options = { :host => "mydomain.com" }
और यहाँ एक ठेठ sidekiq कतार:
/home/john/.rvm/gems/[email protected]/bundler/gems/sidekiq-4ed6eba8aff1/lib/sidekiq/rails.rb:14: warning: toplevel constant Queue referenced by Sidekiq::Client::Queue
2013-07-19T09:47:56Z 20112 TID-1a5mkc INFO: Booting Sidekiq 2.5.2 with Redis at redis://localhost:6379/0
2013-07-19T09:47:56Z 20112 TID-1a5mkc INFO: Running in ruby 2.0.0p247 (2013-06-27 revision 41674) [i686-linux]
2013-07-19T09:47:56Z 20112 TID-1a5mkc INFO: See LICENSE and the LGPL-3.0 for licensing details.
2013-07-19T09:47:56Z 20112 TID-1a5mkc INFO: Starting processing, hit Ctrl-C to stop
2013-07-19T09:48:11Z 20112 TID-1u2z02 Devise::Async::Backend::Sidekiq JID-4a7e66a14deab112191e4b49 INFO: start
2013-07-19T09:48:12Z 20112 TID-1u2z02 Devise::Async::Backend::Sidekiq JID-4a7e66a14deab112191e4b49 INFO: done: 1.214 sec
2013-07-19T09:48:50Z 20112 TID-1u2z02 Devise::Async::Backend::Sidekiq JID-32191822b789f5b6896a5353 INFO: start
2013-07-19T09:48:51Z 20112 TID-1u2z02 Devise::Async::Backend::Sidekiq JID-32191822b789f5b6896a5353 INFO: done: 0.143 sec
2013-07-19T09:49:29Z 20112 TID-1u2z02 Sidekiq::Extensions::DelayedMailer JID-c1911e0c4b72295dc067d57f INFO: start
2013-07-19T09:49:29Z 20112 TID-1u2z02 Sidekiq::Extensions::DelayedMailer JID-c1911e0c4b72295dc067d57f INFO: done: 0.152 sec
मुझे लगता है कि यह ActionMailer और sidekiq से कोई लेना देना नहीं है, लेकिन मैं कैसे डिबग करने के लिए पता नहीं है, सब कुछ काम करने के लिए लगता है, लेकिन ईमेल कभी दिया ही नहीं।
क्या लॉग फ़ाइलों में कुछ भी उपयोगी है? –
केवल यह चेतावनी: me/ujohn/.rvm/gems/[email protected]/bundler/gems/sidekiq-4ed6eba8aff1/lib/sidekiq/rails.rb: 14: चेतावनी: साइडकीक द्वारा संदर्भित निरंतर कतार को निरस्त करना :: क्लाइंट :: कतार लेकिन साइडकीक की कतार ठीक काम करती है। एक्शनमेलर के साथ ईमेल की प्रसंस्करण टूट गई है। – JohnDel
यह एक बग की तरह लगता है, जैसा कि आप सही चीजें कर रहे हैं। मैं इसे रेपो पर एक मुद्दा के रूप में उठाऊंगा। –