Хотелось бы высказать некоторые мысли о том, является ли использование fork {} в «background» процессом из приложения rails такой хорошей идеей или нет ...с использованием ядра fork для фоновых процессов, профи? минусы?
Из того, что я собираю fork {my_method; Процесс # setsid} действительно делает то, что он должен делать.
1) создает еще процессы с другой PID
2) не прерывает процесс вызова (например, он по-прежнему без ждет развилка до конца)
3) не выполняет ребенка до тех пор, он заканчивает
.. это классно, но это хорошая идея? Что именно делает вилка? Создает ли он дублирующий экземпляр моего всего рельса mongrel/пассажира в памяти? Если так, это было бы очень плохо. Или это как-то делает это, не потребляя огромного количества памяти.
Моя конечная цель состояла в том, чтобы покончить с моей системой фон демона/очереди в пользу разветвление этих процессов (в первую очередь отправки сообщений электронной почты) - но если это не будет экономить память, то это, безусловно, шаг в неправильном направлении
Я бы придерживался системы очередей. Если вы используете хорошо поддержанный пакет для этого, вам не придется беспокоиться о подвигах бомбардировок и других многочисленных подробностях, необходимых для хорошей системы массового обслуживания. Это пример, когда вы должны остерегаться откатывать свой собственный код, если это не требуется. –
сервер очередей ++. Возможно, вы захотите проверить MQ (http://github.com/mdarby/mq) для очередей электронной почты. Я использовал его в производстве в течение нескольких месяцев без каких-либо проблем. –