我试图找出最好的方法来通知我的网络应用程序数据库更改。我现在这样做的方式是,我有一个带有计数器的单独的 MySQL 表。
现在,当表 Foo 中发生某些数据库操作时,触发器正在累加计数器。然后,Web 应用程序每 5 秒轮询一次服务器以检查是否发生了某些事情(计数器编号已更改),如果是,则刷新应用程序中的数据。
我想要的是,我将能够从 MySQL 到服务器以及从那里到 Web 应用程序进行回调/通知,这样我就不需要经常轮询服务器。这有可能吗?
facebook、gmail如何发送实时通知? 您不能直接从 MySQL 通知您的应用程序,但有一些解决方案可以节省服务器的带宽和负载。
处理此问题的一种方法 - 要么自己实现观察者模式,要么简单地使用 pubsub 消息传递选项(ZMQ/AMQ/RabbitMQ/Redis 等) - 当初始数据库操作发生时(确保事务已提交),发布pubusb 工具上主题的消息 - 您的应用程序可以订阅 pubsub 工具并在数据库更改时接收消息。
希望能帮助到你。