如何在cron作业中进行Flask API调用时关闭数据库连接?

时间:2019-05-10 10:50:49

标签: python postgresql api flask cron

cronjob使用管理会话使用不同的API调用连接到不同的数据库。每次通话后,我想确保连接已关闭。在正常的API调用的情况下,我可以在每次API调用之后使用before_request打开,并使用after_request装饰器关闭,但是在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 :(得分:0)

如果您已经与数据库建立了连接,我相信您需要做的只是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()