Как закрыть соединения БД во время выполнения вызовов API флакона в задании cron? - PullRequest
3 голосов
/ 10 мая 2019

Cronjob подключается к различным базам данных, используя разные вызовы API, используя сеанс администратора. После каждого звонка я хотел бы убедиться, что соединение закрыто. В случае обычного вызова API я могу использовать before_request для открытия и after_request для закрытия после каждого вызова API, но в cronjob как вызывать эти функции. Код в задании cron для вывода очередей для одной из баз данных выглядит следующим образом:

def get_queue_list(session, access_token):
    queue_list = []
    headers={'Authorization': "Bearer " + access_token}
    r = session.get(queue_api, headers=headers)
    queue_list = json.loads(r.content)['queue_list']
    r.connection.close()

    return queue_list

В приведенном выше фрагменте кода оператор r.connection.close () гарантирует, что соединение БД закрыто? Как мне это проверить? У меня много установок на одном сервере. Этот cronjob вызывает разные API для периодической обработки разных установок разных баз данных. Пожалуйста, оставьте

Основной вызов функции:

if __name__ == "__main__":
    print __doc__
    # base_url is read from a csv file
    queue_api = base_url + '/rt/api/v1.0/queues'

1 Ответ

0 голосов
/ 15 мая 2019

Я считаю, что все, что вам нужно сделать, это r.close(), если у вас уже есть установленное соединение с БД. Я пытаюсь вызвать запрос (т.е. select * from table), используя функции курсора и соединителя. Если я получаю ошибку, я знаю, что она не подключена.

Я бы также рекомендовал закрыть соединение после вызова функции соединения с БД.

def get_queue_list(session, access_token):
    queue_list = []
    headers={'Authorization': "Bearer " + access_token}
    r = session.get(queue_api, headers=headers)
    queue_list = json.loads(r.content)['queue_list']

return queue_list, r

if __name__ == "__main__":
    print __doc__
    # base_url is read from a csv file
    queue_api = base_url + '/rt/api/v1.0/queues'
    r.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...