Это действительно зависит от вашего варианта использования.Сам Twitter, я думаю, отправляет запрос AJAX в API.Вы можете сделать то же самое, если это имеет смысл в вашем интерфейсе, но это означает, что вы используете веб-процесс для этого.Одним из преимуществ этого является то, что вы можете убедиться, что запрос был успешным, прежде чем возвращать resopnse пользователю.Это гораздо проще, чем сценарий, когда вы помещаете в очередь что-либо в фоновом режиме, происходит сбой, и вы хотите предупредить пользователя (например, с помощью системы сообщений в режиме реального времени на основе ajax / socket или мгновенного уведомления о другом запросе).
Если вы не беспокоитесь о том, чтобы показывать твиты (например, ваше приложение отправляется как часть более крупного действия), тогда выполнение этого в фоновом режиме, безусловно, является подходящим способом.
Resqueэто здорово, а задания действительно легкие, поэтому вы можете быстро интегрировать их, чтобы обрабатывать их в фоновом режиме довольно быстро.
# app/jobs/send_tweet.rb
class SendTweet
@queue = :tweets
def self.perform(user_id, content)
user = User.find(user_id)
# send Tweet
end
end
# app/controllers/tweet_controller.rb
def create
# assuming some things here, like validation and a `current_user` method
Resque.enqueue(SendTweet, current_user.id, params[:tweet][:message])
redirect_to :index
end