Кэшируются ли результаты запроса SqlAlchemy? - PullRequest
3 голосов
/ 20 июня 2011

У меня в основном следующий код (я упростил его):

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 Ответ

3 голосов
/ 20 июня 2011

Если вы используете автоматические транзакции, я думаю, что вам нужно зафиксировать транзакцию, чтобы 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...