我基本上有以下代码(我简化了一堆):
while True:
new_payments = session.query(PayPalPayments) \
.filter_by(status='new') \
.order_by(PayPalPayments.payment_id) \
.all()
process_payments(new_payments)
time.sleep(30)
由于某种原因,我第一次运行程序时,查询返回new_payments
。如果在程序time.sleep(30)
休眠时收到新付款,则查询不会返回任何新结果。
是否在SqlAlchemy中为同一查询缓存了查询结果?任何想法如何使每个查询真正查询数据库并返回新行?
答案 0 :(得分:3)
如果您使用的是自动事务,我认为您需要提交事务以强制SQLAlchemy刷新结果。
试试这个:
while True:
new_payments = session.query(PayPalPayments) \
.filter_by(status='new') \
.order_by(PayPalPayments.payment_id) \
.all()
process_payments(new_payments)
session.commit()
time.sleep(30)