我使用的是一天24小时运行的php机器人,用于向另一台服务器发送请求一开始我在考虑每隔10秒发送一个新的数据,但是这会很糟糕,因为每天会有8640个请求,更不用说在发送到另一个服务器之前需要解析的数据的大小和数量了我认为有没有更好的方法来检测mysql上的更改并通知php与有新数据时一样,mysql使用与新数据相关的唯一id发送notify
aiazj4mn1#
检查这个堆栈溢出问题/答案:当在数据库中添加新行时,必须调用外部命令行程序创建一个mysql触发器,以便在添加新数据时,它会更新一个仅用于保存此信息的特殊表。cron作业和/或php robot将每隔10秒检查一次该表的信息。如果有更改,则将该信息发送到另一个服务器并清除特殊表,否则结束并等待接下来的10秒钟。
bis0qfac2#
您可以使用mysql触发器函数,也许这会有所帮助。https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html
7gyucuyw3#
我相信你可以有一个保存计数信息的文件,每一个请求你都可以请求记录的计数,以供查询。
SELECT COUNT(?) FROM .....
如果计数比上一次发送请求的次数要高,那么您可以做的唯一一件事就是减去它,用这种方法计算更改的次数。然后,您可以提出另一个请求,只查找更改。
SELECT ? FROM ? WHERE ? ORDER BY `ID` DESC LIMIT $numberOfChanges
我相信id是自动递增的,这样,更改的id会更高
3条答案
按热度按时间aiazj4mn1#
检查这个堆栈溢出问题/答案:当在数据库中添加新行时,必须调用外部命令行程序
创建一个mysql触发器,以便在添加新数据时,它会更新一个仅用于保存此信息的特殊表。cron作业和/或php robot将每隔10秒检查一次该表的信息。如果有更改,则将该信息发送到另一个服务器并清除特殊表,否则结束并等待接下来的10秒钟。
bis0qfac2#
您可以使用mysql触发器函数,也许这会有所帮助。
https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html
7gyucuyw3#
我相信你可以有一个保存计数信息的文件,每一个请求你都可以请求记录的计数,以供查询。
如果计数比上一次发送请求的次数要高,那么您可以做的唯一一件事就是减去它,用这种方法计算更改的次数。然后,您可以提出另一个请求,只查找更改。
我相信id是自动递增的,这样,更改的id会更高