我有一个脚本正在运行,当数据被添加到数据库时,我想处理它。
import mysql.connector
import time
wait_time = 2
mydb = mysql.connector.connect(
host="localhost",
user="xxx",
passwd="yyy",
database="my_database"
)
mycursor = mydb.cursor()
while True:
sql = "SELECT * FROM data WHERE processed = 0"
mycursor.execute(sql)
records = mycursor.fetchall()
for i, r in enumerate(records):
print(r)
time.sleep(wait_time)
但是,如果通过其他连接插入一行,则此连接不会显示该行。
i、 e.如果我通过第三方应用程序连接到我的数据库,并在
但是,如果我重新启动上面的脚本,它就会出现。
有什么想法吗?
1条答案
按热度按时间5rgfhyps1#
使用消息队列(例如rabbitmq)。让第三方应用程序使用它。消息队列实现具有更好的异步处理信息的api。即使您只是使用消息队列来存储数据库内容的主键。
或者启用二进制日志记录并使用复制协议库来处理事件。