2011-06-20 51 views
3

我已經基本下面的代碼(我簡化它一串):做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中查詢結果是否被緩存了相同的查詢?任何想法如何使每個查詢真正查詢數據庫並返回新行?

+0

的可能重複(http://stackoverflow.com/questions/204918/does-sqlalchemy-support-caching) – user

回答

3

如果您使用自動事務,我認爲您需要提交事務來強制SQLAlchemy刷新結果。

試試這個:[?不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) 
+1

感謝您的答覆,我只是將它添加到我的代碼中,然後我會看看它是否有效! –

+0

它的工作,謝謝! :) –