Некоторые люди отметили, что не существует известного соотношения и что соотношение веб-работников и «фоновых» работников, которые вам понадобятся, зависит от того, как вы разработали свое приложение - это правильно. Однако я подумал, что было бы полезно добавить, что, как общее практическое правило, вы хотите, чтобы ваши веб-работники - и, следовательно, выполняемые ими действия контроллера - были молниеносно и очень легкими, чтобы уменьшить задержку в время отклика от действий браузера. Если есть какое-то действие браузера, которое потребует больше, чем, скажем, около полсекунды реального времени для обслуживания, то вы, вероятно, захотите сконструировать какую-то систему, которая перенесет большую часть этого действия в очередь.
Затем вы должны создать автономный рабочий динам (ы), который будет обслуживать эту очередь. Они могут занять гораздо больше времени, поскольку на их выводе нет ожидающих ответов HTTP. Возможно, страница, которую вы отобразили из первоначального запроса браузера, который выдвинул действие, будет обслуживать некоторый Javascript, который запускает поток, который проверяет, завершается ли запрос каждые 5 секунд, или что-то в этом духе.
Я до сих пор не могу дать вам соотношение для работы по той же причине, что и другие, но, надеюсь, это поможет вам решить, как создать свое приложение. (Я должен также упомянуть, что это только один дизайн из многих действительных.)