У меня есть процесс, который нужно запускать с определенными вещами, и он не подходит для запуска в конце пользователя (15 секунд для обработки), поэтому я решил использовать задание cron, но опять же, это также непригодно, потому что оно создаст задний журнал. Я сузил свои возможности до бесконечного процесса, который отслеживает изменения mysql, или настраивает mysql для запуска скрипта, когда он обнаруживает изменение, но последнее не то, что я хочу вставить, если только это не единственный вариант, который оставляет меня с опцией «бесконечного» мониторинга.Лучший подход для запуска «бесконечного» мониторинга процессов MySQL?
Рода вещи я рассматриваю с РНР:
while (true) {
$db->query('SELECT * FROM database');
while($row = $db->fetch_assoc()){
// do the stuff here
}
sleep(5);
}
, а затем запустить его с помощью командной строки. Теперь это теоретически звук , но на практике это не так, как я надеялся, используя больше ресурсов, чем я ожидал бы (но не из моего диапазона, просто не для того, к чему я стремился оптимально). Поэтому мои вопросы таковы:
Является ли PHP неправильным языком для этого? PHP - это то, с чем я работаю, но я понимаю, что бывают времена, когда это неправильный выбор, и я думаю, возможно, это так. Если да, то какой язык я должен использовать?
Есть ли лучший подход, который я не рассматривал и который не является ни одной из идей, которые я перечислил?
Если PHP является правильным вариантом, как я могу оптимизировать код, который я опубликовал, есть ли способ лучше, чем спать в течение 5 секунд после каждой завершенной операции?
Заранее благодарен! Я открыт для любых идей, пока они не слишком далеко, я запускаю свой собственный сервер со свободным правлением, поэтому нет теоретического лимита на то, что я могу сделать.
Я знаю его старую нить, но это отличный ответ. Но скажите мне, если я продолжу процесс инициализации процесса, не будет ли перераспределение ресурсов проблемой? Представьте себе сценарий, когда соединение ресурсов уничтожается только на конце клиента и установлено на тайм-аут на сервере, может ли это быть избыточным? Мне любопытно, потому что я использую MongoDB с бесконечными процессами в PHP Python и C. И Python и C настолько просты в этом, и ваш подход может помочь мне улучшить PHP! К сожалению, MongoDB не закрывает соединение с конца клиента. –