Основная причина использования фоновых рабочих заключается в том, что основной поток не связан с выполнением задачи. Используя Resque, он позволяет выполнять задачи вне основного потока. Это хорошо по многим причинам. Самым большим является то, что медленные операции не приводят к зависанию основного потока, блокируя всю функциональность до выполнения запроса.
Redis to Go - это просто удаленная база данных Redis. В вашем основном потоке вы выполняете операцию, где вы изменяете 500 ключей. В локальной базе данных это совсем не займет времени, но если вы не используете многокомпонентную команду, вам придется отправлять каждую команду на сервер и ждать ответа. Ладно, ничего страшного, если есть несколько команд, но это займет заметное количество времени, чтобы сделать это 500 раз на удаленном сервере. Вот несколько примеров номеров. Требуется 5 мс, чтобы сделать операцию локально. Здесь использование Resque не требуется, поскольку задания выполняются быстро и локально. Теперь, используя Redis to Go, мы должны выйти за пределы локальной сети. Теперь каждая операция занимает 5 мс (0,005 секунды). И если бы мы делали 500 из них, 0,005 * 500 - это 2,5 секунды. Теперь это 2,5 секунды, которые используются для запроса базы данных, и ваш основной поток блокируется до тех пор, пока запросы не будут выполнены. (Обратите внимание, что эти числа абсолютно случайны ... Они могут быть выше или ниже)
Теперь в Resque эти операции выполняются в фоновом режиме. Когда ваш основной поток будет выполнен, он добавит задания в Resque. И основной поток выполнится. Resque теперь будет выполнять команды в порядке их получения. Теперь выполнение может занять 2,5 секунды, но эти 2,5 секунды не удерживают основной поток.