Должен ли я использовать c ++ или скрипт для процесса демона? - PullRequest
0 голосов
/ 08 февраля 2009

Мне нужно реализовать демон, который должен извлекать данные из базы данных, загружать данные в память и в соответствии с этими данными выполнять такие действия, как отправка электронных писем или запись / обновление файлов. Эти действия необходимо выполнять каждые 30 минут.

Я действительно не знаю, что решать. Скомпилируйте программу на С ++, которая выполнит задачу, или используйте сценарии и другие инструменты Linux (sed / awk).

Какой самый быстрый способ сделать это? Для экономии ресурсов процессора и памяти.

Дилемма заключается в мариновании этого процесса, если его скрипт не нуждается в компиляции, и я могу просто перенести его на любой компьютер linux / unix но если он родной, то он сложнее.

Что ты думаешь?

Ответы [ 3 ]

5 голосов
/ 08 февраля 2009

Используйте cron (1) для запуска вашей программы каждые 30 минут.

Так называемые скриптовые языки определенно позволят вам писать вашу программу быстрее, чем C ++. Но сделать это с помощью shell и sed и / или awk, хотя это определенно возможно, очень сложно, когда вам приходится справляться со всеми угловыми случаями, особенно в отношении экранирования строк (например, кавычки, «& »'s«; »s…).

Я предлагаю вам использовать более полнофункциональный язык сценариев, такой как Perl или Python.

2 голосов
/ 08 февраля 2009

Почему вы пытаетесь сохранить процессор и память? Вы абсолютно уверены, что это реальное требование (или просто «преждевременная оптимизация»)?

Если производительность не критична, нет абсолютно никакой причины кодировать такие вещи в C ++. Кажется, это своего рода процесс обслуживания (верно?). Я говорю, напишите это на языке сценариев самого высокого уровня, который вы знаете. Python или PHP кажутся хорошими кандидатами. Даже если вы не знаете эти языки, вам все равно потребуется меньше времени, чтобы ознакомиться с ними, чем потребовалось бы вам сделать это в C ++.

0 голосов
/ 09 февраля 2009

Я бы пошел с реализацией Python / Perl / Ruby с записью cron для планирования запуска скрипта каждые 30 минут.

Если производительность становится проблемой, вы можете добавить в свою БД столбец, который отслеживает последний раз, когда вы выполняли вычисления для учетной записи, а затем разбивать обработку ваших записей на группы по 2, 3 или 4, выполняя их постоянно 15, 10 , 5 минут соответственно.

Если после разделения ваших вычислений на группы у вас все еще есть требования к производительности, рассмотрите C ++ / C / Java.

Я бы все равно запустил это, используя cron. Не нужно быть демоном, если вы не предоставляете услуги по требованию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...