@b1nary
php junior

Как запустить php скрипт при изменении mysql базы?

Есть задача: в базу mysql, руками (из какой-то оболочки), будут добавляться данные. При изменении столбца или ячейки должен запуститься php скрипт, который отправляет по TCP данные на удалённый сервер. Поиск дал ответ что из mysql запустить скрипт не возможно. Я понимаю что первый вопрос: "что-то всё как-то не по человечески, по другому сделать нельзя разве"? Нельзя ибо именно так ставит задачу заказчик. Поставить в крон задание дёргать базу на предмет изменения оной раз в минуту не подходит, ибо скрипт должен выполниться сразу после обновления базы - отсутствие промежутка времени между обновлением и запуском скрипта играет большую роль. В течении дня в базу будет попадать минимум данных, а вот реакция на изменения должна быть мгновенная.
Вопрос: возможно ли решить вопрос именно таким способом? Может другая база или ещё что. Начинаю изучать Питон, может есть решения с помощью Питона?

Апдейт: а почему никто про демоны не пишет?
  • Вопрос задан
  • 3707 просмотров
Решения вопроса 1
@b1nary Автор вопроса
php junior
Решение такое: написал скрипт, где в бесконечном цикле while(true) проверяется ячейка в таблице базы. При изменении происходит соответствующая реакция. Скрипт запустил на сервере из консоли командой "php -f path/to/file.php &". Скрипт крутится бесконечно, но грузит сервер как процесс самого файла, так и mysqld где-то процентов на 60. Разбираться не стал, добавил в цикл паузу sleep(1), в итоге нагрузка упала до нуля. Благо мне проверять чаще 1 раза в секунду не надо.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
gluck59
@gluck59
Виртуальный глюк
Пусть "какая-то оболочка" после записи в базу дергает этот скрипт.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы