Я думаю, что эти ответы могут отсутствовать - дать базовое образование по шаблону дизайна, который вы захотите использовать.Да, Resque или Starling и Workling или Resque в сочетании с Foreman будут отличными решениями, но вы, вероятно, захотите узнать, почему.
Я полагаю, что шаблон, который вы хотите использовать, - это шаблон Observer или Publisher-Абонент или PubSub, для краткости.Идея похожа на работу принтера в простейшем случае.
Человек (издатель) нажимает кнопку «Печать» в веб-браузере.Затем, асинхронно, принтер печатает их.Принтер, если он не включен, будет получать сообщения при включении.Если несколько человек отправляют документы на принтер, принтер выбирает их по порядку (FIFO), а затем обрабатывает (печатает).Если есть несколько принтеров, прослушивающих одну и ту же очередь (именно здесь метафора ломается, поскольку у вас ее обычно нет), они могут по очереди выбирать сообщения для более быстрой обработки очереди.
Resque и другиеВ шаблонах PubSub, проектах, JAR-файлах (вы не ограничены Ruby) реализован этот шаблон проектирования.
Дополнительная информация о шаблоне приведена здесь (обратите внимание, что Java Observable - это класс, который является плохим дизайнерским решением.реализовать свой собственный):
http://ruby -doc.org / stdlib-2.0 / libdoc / наблюдатель / rdoc / Observable.html http://docs.oracle.com/javase/7/docs/api/java/util/Observable.html http://en.wikipedia.org/wiki/Observer_patternhttp://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern
Для нашей обработки мы используем Resque для небольших задач, но вы по-прежнему ограничены глобальной блокировкой интерпретатора и другими проблемами, такими как развертывание кода на сервере, установка гемов и т. Д. Теперь мыиспользуйте Storm (https://github.com/nathanmarz/storm) для обработки нашей потоковой обработки, и она работает намного лучше. Storm может быть излишним из-за того, что вы пытаетесь сделать, в зависимости от того, сколько изображений вы обрабатываете в день.