एक नया संसाधन बनाया जाता है और यह कुछ लंबा प्रसंस्करण करने की जरूरत है इससे पहले कि संसाधन के लिए तैयार है, मैं कैसे दूर पृष्ठभूमि में कि प्रसंस्करण भेजूँ जहां यह वर्तमान अनुरोध या अन्य धारण नहीं करेंगे जब मेरे वेब ऐप पर यातायात?रेल पर रूबी: पृष्ठभूमि में चीजें कैसे चलाएं?
अपने मॉडल में:
class User < ActiveRecord::Base
after_save :background_check
protected
def background_check
# check through a list of 10000000000001 mil different
# databases that takes approx one hour :)
if(check_for_record_in_www(self.username))
# code that is run after the 1 hour process is finished.
user.update_attribute(:has_record)
end
end
end
, सर्वाधिक उपयोग किए जाने/सबसे समर्थित विकल्प हैं [sidekiq] (https://github.com/mperham/sidekiq), [resque ] (https://github.com/defunkt/resque), और [देरी_job] (https://github.com/collectiveidea/delayed_job)। आईएमएचओ, साइडकीक उच्च-थ्रूपुट कतारों के लिए सबसे अच्छा है, और देरी_job बहुत कम थ्रूपुट के लिए सबसे अच्छा है। –
एक और विकल्प है [आयरनवर्कर] (http://www.iron.io) यदि आप पृष्ठभूमि सेवा "सेवा के रूप में" चाहते हैं और सर्वर या कतार के विचार के बारे में चिंता करने की ज़रूरत नहीं है। आयरनएमक्यू/आयरनवर्कर ऑटो ऑटो रीट्रीज, टास्क लॉग, वेबहुक इत्यादि भी प्रदान करता है। यह रेल के साथ अच्छी तरह से एकीकृत करता है। यहां कुछ वीडियो दिए गए हैं: https://www.youtube.com/user/ironiodevelopers – Chad