Я работаю над приложением Rails 2.3.x, которое должно запускать длительную медленную задачу асинхронно.Выполнение медленных задач асинхронно в Rails?
Откладывание запроса до завершения обработки - это немного боль. Мы рады просто отправить «Хорошо, мы получили это, и мы работаем над этим», - ответьте на реакцию клиента, а затем просто хрустите работу после того, как клиент ушел.
Итак, я видел несколько методов для этого (например, forking или cron), но кажется, что системы очередей задач могут быть лучшей идеей.
Похоже, что три основные из них:
Воробей выглядит особенно интересно в связи с поддержкой Memcached это, но я не хотят просто выбирать один, не принимая обоснованного решения. Кто-нибудь имеет представление о лучших методах? Мне бы хотелось услышать о вашем опыте с вышеизложенным, особенно о любых крупных ошибках с этим подходом или упомянутых библиотек. Возможно, есть еще лучший способ сделать это, что я пропустил полностью?
Только так: Rails 3.x сейчас не вариант, это необходимо для Rails 2.3.x.
Спасибо!
Также попробуйте: [navvy] (https://github.com/jeffkreeftmeijer/navvy) и [delayed_job] (https://github.com/tobi/delayed_job) имеют хороший опыт работы с ними обоими, но нет специальных идей – iain 2010-12-16 01:10:13
Вы всегда можете написать свой собственный. По моему опыту, сделав это, вы лучше поймете свою проблему, а также решение, и оно будет делать именно то, что вам нужно. Лучше потратить время, чем читать решения других людей по своим небольшим проблемам. – maerics 2010-12-16 06:18:32