Я пытаюсь подумать о том, как лучше всего искать в реальном времени веб-сайт. Единственное решение, которое я могу придумать, – это следить за сервером каждые несколько секунд за что-то новое в базе данных, но это не кажется мне очень практичным.
Начиная с 5.0.2 MySQL поддерживает триггеры: http://dev.mysql.com/doc/refman/5.0/en/triggers.html
Но, к сожалению, я не знаю MySQL достаточно хорошо, чтобы узнать, можете ли вы сделать что-нибудь «полезное» в них, чтобы уведомить приложение (в Oracle я бы подумал об xp_). По крайней мере, вы могли бы написать строку в единую таблицу, подобную аудиту, чтобы вам нужно было только опросить в одном месте.
Нет, это невозможно, потому что MySQL не может. Вам нужно использовать другие технологии, возможно, включая очередь сообщений или поточную базу данных.
У меня есть приложение, над которым я работал 5-6 лет назад. В то время я искал аналогичное решение. Это было для моего приложения pre-twitter – мое собственное развитие смс на веб-странице без обновления. У меня был способ, которым я был опрос в то время … но по крайней мере у меня не было отвратительного обновления страницы. Плюс … Я дона
Это привело меня к кометному серверу. Это был мой ответ.
Я был убежден, что в чате Gmail используются настоящие технологии push, а также против опроса. Надеюсь, это приведет вас в правильном направлении.
AFAIK, нет возможности сказать MySQL, чтобы пинговать ваш скрипт, когда что-то там происходит.
Опрос кажется единственным правдоподобным решением …
Я не играл с ним, но заметил, что структура Symfony внесла «уведомление о событиях» … в основном, каждый раз, когда одна часть приложения делает INSERT или UPDATE, она создает событие, а другие фрагменты кода могут регистрироваться в «слушать» события и огонь.
Это будет все на уровне PHP, а не на уровне базы данных, но я думаю, что вы ищете.
Здесь есть хорошая статья о событиях symfony: http://www.symfony-project.org/blog/2009/02/21/using-the-symfony-event-system
Вы можете использовать что-то вроде Gearman (у которого есть интерфейс MySQL ), чтобы подталкивать ваш php-код, когда что-то происходит. Возможно, вы могли бы использовать эти события для создания статической страницы со всей новейшей информацией и использовать опрос на стороне клиента, чтобы захватить эту статическую страницу.
Однако я пока не использую Gearman, так что подробности о такой установке находятся вне меня.
даже если php мог бы показать ваши обновления пользователю, вам придется запросить сервер, чтобы показать результаты.
и единственный способ – это то, о чем вы уже думаете, запрашивая сервер каждые 5 и более секунд.