Привет (это автор HireFire)
Я постараюсь предоставить некоторую информацию относительно различий между услугами.Не уверен, что это сильно поможет с вашим решением, но, по крайней мере, это что-то!
Оба решения используют разные подходы.HireFire просто масштабирует вашу сеть Heroku и рабочих динамо, когда это необходимо.Вам не нужно ничего менять в существующей кодовой базе, вы просто используете отложенное задание как обычно.Вам не нужно отправлять / писать код для отдельной среды / платформы, так как при развертывании он компилируется в качестве slug на платформе Heroku, и когда появляется новый веб или рабочий dyno, slug используется и запускается немедленно (содержащий все вашиПеременные / настройки ENV.
Недостатком HireFire по сравнению с SimpleWorker является то, что HireFire относится к Heroku, поэтому если вы когда-нибудь переключитесь с Heroku, например, на EngineYard или VPS / Dedicated box, то HireFire не будетработает, но SimpleWorker будет работать, поскольку он не привязан строго к Heroku, хотя, вероятно, его размещение на платформе, отличной от PaaS, очень дешево (для сравнения), поэтому автоматическое масштабирование не обязательно будет требоваться так сильно или вовсе.
До разработки HireFire я был клиентом SimpleWorker, и лично мне не понравилось то, что мне пришлось перенести часть моей кодовой базы в SimpleWorker и загрузить в свою среду Rails, повторно подключиться к базе данных из ихрасположение серверов, а также делать запросы API (?) каждый раз, когда яНе посылайте работу в облако (хотя сейчас это могло измениться, поэтому я советую вам убедиться в этом самим, и, может быть, это не так уж важно для вас, как для меня),Для меня это было просто слишком много хлопот / проб и ошибок каждый раз, когда я хотел добавить новые классы заданий, и мне приходилось загружать все отдельные фрагменты кода из моего приложения и моих самоцветов в файлы самого класса заданий, тогда как запуск heroku ps:workers 1
или heroku ps:scale worker=2
мгновенно раскрутит одного или двух рабочих и начнет обработку с нулевыми изменениями в моей кодовой базе, точно так же, как когда я запускаю его локально, так как все мое приложение уже скомпилировано в качестве slug на Heroku, оно просто использует этовключая мои переменные ENV и другие настройки / надстройки, и он быстро раскручивается.
С HireFire вам просто нужно добавить гем hirefireapp в свой Gemfile, добавить свою учетную запись / приложения Heroku ввеб-интерфейс HireFire, настройте свои потребности в масштабировании, разверните свое приложение в Heroku и все.Ваши приложения будут постоянно отслеживаться и управляться / корректироваться (с точностью до минуты).
HireFire не имеет гладкого интерфейса с таблицами заданий и их статусом (запущено / выполнено / не выполнено / и т. Д.) (в нем есть обзор текущего количества веб-рабочих и рабочих динамов и заданий в очереди для каждого приложения, конечно же, и настраиваемые параметры масштабирования), хотя на самом деле задача рабочей библиотеки заключается в обеспечении такой функциональности.Отложенное задание из того, что я знаю, имеет один или два небольших интерфейса администратора, которые вы можете использовать (с открытым исходным кодом), которые не привязаны к HireFire.Поскольку SimpleWorker является как размещенной службой, так и рабочей библиотекой в одной, они также предоставляют вам веб-интерфейс.
HireFire также имеет возможность масштабировать ваши веб-динозаводы, а не только ваши рабочие..
Обе службы имеют возможность обрабатывать множество заданий параллельно, так как Heroku и SimpleWorker пропорционально уступают второму, насколько я понимаю.Таким образом, независимо от того, используете ли вы 10 рабочих динамов в течение 6 секунд или 1 в течение 60 секунд, нет никакой разницы (или едва) в затратах.
Я не использовал SimpleWorker после выпуска HireFire, что было довольно давно.поэтому я не уверен, что еще предоставляет SimpleWorker в эти дни, или же они упростили процесс с тех пор, поэтому я не уверен, что приведенные выше заявления все еще действительны в настоящее время.
Надеюсь, это поможет!