Суть задачи. Есть сайт который при определённых действиях должен вызывать скрипты. Например. На сайте размещают текст и внешний скрипт занимается его обработкой. Т.к. эта обработка может быть долгой, то неразумно выполнять её в рамках загрузки текста на сайт.
Один из вариантов был запуск скриптов по крону. Другой вариант это написать демона и дергать его, например, через отправку данных через сокеты. Но тут другая проблема. Тексты выкладывают не так уж часто и постоянно запущенный демон в пустую бы отъедал ОЗУ на дешевом VDS.
В данный момент я использовал демон inetd который передаёт данные поступившие на определённый порт программе на C, которая в свою очередь разбирает команду и запускает нужный скрипт. Из плюсов, то что кроме маленького inetd большую часть времени никто не есть ОЗУ.
Вопрос. Насколько правильно решена задача? И может быть есть более простые пути решения проблемы?
romy4: мне знакомый программист на С, когда посмотрел на моё решение, сказал, что я перемудрил. Вот я и засомневался. Правда, он никаких других вариантов не предложил.
Nc_Soft: На самом деле не отказался и cron запускает скрипт раз в час, на случай если в связке inetd, что-то сломается. Просто людям не понравилось, что между размещением текста и его появлением на сайте проходит много времени (пока cron запустит скрипт). Можно конечно запускать и каждую минуту, но мне это показалось крайне неоптимальным решением.
В данный момент я использовал демон inetd который передаёт данные поступившие на определённый порт программе на C, которая в свою очередь разбирает команду и запускает нужный скрипт.
Нормальное решение (в духе UNIX ;-)).
1. inetd - сильно устаревшая реализация, используют xinetd;
2. зачем запускать транзитную программу на C, если можно сразу скрипт запускать (лишние действия)
Может пригодится: суперсервера inetd/xinetd в своих целях