Я новичок в Rails и многопоточности, и мне любопытно, как достичь следующего в самом элегантном стиле. Я не нашел ни одного хорошего учебника, в котором подробно объяснялось, какое лучшее решение для решения для следующей задачи:Как создать рабочего демона, который ждет заданий и выполняет их?
У меня есть несколько HTTP-запросов, которые будут выполняться для пользователя в фоновом режиме, например, пару веб-сайтов и получить некоторую информацию, такую как код ответа HTTP, время отклика, а затем вернуть результаты. По соображениям производительности я решил разделить общее количество URL-адресов для разбора в партии по 25 штук, затем выполнить каждую партию в потоке, объединить их и записать результат в базу данных.
Я решил использовать следующий драгоценный камень (http://rubygems.org/gems/thread), чтобы обеспечить максимальное количество потоков, которые запускаются одновременно. Все идет нормально.
Проблема состоит в том, что если два пользователя начинают свой анализ параллельно, максимальное количество потоков в два раза больше моего потока.
Мое решение (imho) - создать рабочего демона, который запускается самостоятельно и ждет заданий от клиентов.
Мой вопрос: какой лучший способ достичь этого в Rails?
Возможно, создать задачу Rake и использовать ее как демон (см. «Daemoninsing a rake task») и (как?) Добавить к ней задания?
спасибо, что заблаговременно!
Hi Tin Man, это выглядит очень многообещающим. Я прочитаю это и дам вам обратную связь завтра! P.S .: Спасибо, что исправил/разъяснил мой плохой английский. :) – madhippie
Я искал эту драгоценность и довольно доволен. Typhoeus и Hydra точно соответствуют моим требованиям! Большое спасибо. – madhippie
Спасибо автору драгоценного камня. Это очень хороший инструмент. –