python - mysql.connector 未检测到数据的外部更改
问题描述
我有一个正在运行的脚本,我想在将数据添加到数据库时对其进行处理。
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)
但是,如果通过不同的连接插入一行,则此连接不会显示它。
即,如果我通过第三方应用程序连接到我的数据库,并插入一行到
但是,如果我重新启动上述脚本,它就会出现。
有任何想法吗?
解决方案
使用消息队列(例如 RabbitMQ)。获取第三方App使用。消息队列实现具有更好的异步处理信息的 API。即使你只是使用消息队列来存储数据库内容的主键。
或者启用二进制日志记录并使用复制协议库来处理事件。
推荐阅读
- google-analytics - 谷歌分析事件跟踪不起作用
- java - 使用 Spring EL 将值设置为 lambda
- c# - C# - 通过反射按属性排序
- python - 使用 lambda 函数进行精确字符串搜索
- gnuplot - Gnuplot:来自文件 .plt 的插图
- ios - 不同半径的圆角
- .htaccess - 冒号有什么问题:在###comment 中?
- excel - 复杂的 IF 语句多张表
- elasticsearch - 如何将 Logstash 通过输出插件发送到 Elasticsearch 的 _bulk 请求有效负载记录下来?
- node.js - 错误:在 Firebase 文件存储中找不到