ОС linux
в работу входило подключение к БД взять настройки и обслуживать устройства.
по пути наименьшего сопративления был выбран код
- Код: Выделить всё
while true do
begin
for i := 0 to DevList.Count - 1 do
// куча кода
sleep(100);
end;
со временем деревья выросли. компьютеры стали маленькие, у стройств становится все больше и больше.
соответсвенно ядрышку приходится развиваться, вот в собсвеном и вопрос как ?
т.к. ось линукс и меняться не планируется, то платформо логично использовать fork
значит выходит 2 варианта
1,
процесс стартует
идет к базе, получает сколько устройств надо обслуживать, отключается от БД
распаралеливается на кучу процессов
из каждого конектится и работает по своему алгоритму
+ в принципе легко реализуем, да и глюков быть не должно
- куча коннектов к БД
- не знаю как с ними общаться и как логировать
2,
процесс стартует
идет к базе, получает сколько устройств надо обслуживать,
создаетна кучу процессов, передает им инструкции
общается с ними через именованые каналы (?)
+ один конект к БД
+ возможность создавать\убивать процессы во время работы из главного процесса
- не работал с именоваными каналами, не знаю их надежность
какие мысли ?