SqlAlchemy查询结果是否被缓存?

时间:2011-06-20 16:03:39

标签: caching sqlalchemy

我基本上有以下代码(我简化了一堆):

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中为同一查询缓存了查询结果?任何想法如何使每个查询真正查询数据库并返回新行?

1 个答案:

答案 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)