Когда новый ресурс создан, и он должен сделать некоторые длительной обработки до ресурс готов, как я посылаю, что обработка далеко в фоновом режиме где не будет держать текущий запрос или другой трафик на мое веб-приложение?Ruby on Rails: Как запустить вещи в фоновом режиме?
в моей модели:
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), [спасательное ] (https://github.com/defunkt/resque) и [delayed_job] (https://github.com/collectiveidea/delayed_job). IMHO, Sidekiq является лучшим для высокопроизводительных очередей, а delayed_job является лучшим для очень низкой пропускной способности. –
Другим вариантом является [IronWorker] (http://www.iron.io), если вы хотите, чтобы обработка фона «как услуга» и никогда не беспокоиться о идее серверов или очередей. IronMQ/IronWorker также предлагает автоматические повторы, журналы задач, webhooks и т. Д. Он прекрасно сочетается с Rails. Вот несколько видеороликов: https://www.youtube.com/user/ironiodevelopers – Chad