2010-02-09 2 views
4

Что такое шаблон дизайна в erlang с точки зрения gen_server для создания фиксированного числа рабочих процессов и подачи их «заданиями» для выполнения некоторых действий? Каждый рабочий процесс ведет переговоры с внешней службой, которая имеет ограничения на соединение. Количество «рабочих мест» считается неограниченным. В C я бы сделал это, создав пул рабочих потоков и асинхронный. очередь (с ограниченной емкостью), охраняемая мьютексом, для подачи пула заданиями от подателя.Как контролировать количество работающих рабочих процессов?

+0

Зачем вам фиксированное количество рабочих? – rvirding

+2

@rvirding, я хочу, чтобы число рабочих было исправлено, потому что каждый из них обменивается данными с внешней службой, которая имеет ограничения на несколько одновременных соединений из одного источника. – Konstantin

ответ

2

Попросите gen_server установить монитор на ваши рабочие процессы, а когда вы умрете (закончите или закончите сбой), создайте еще один.

+0

Возможно, вы можете использовать для этого супервизора. – rvirding

Смежные вопросы