【问题标题】:how to close db connections while making flask API calls in a cron job?如何在 cron 作业中进行烧瓶 API 调用时关闭数据库连接?
【发布时间】:2019-09-28 06:38:11
【问题描述】:

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

以上代码sn-p中,r.connection.close()语句是否保证db连接关闭?我该如何检查?我在同一台服务器上有很多安装。此 cronjob 为不同数据库的不同安装调用不同的 API 以定期处理。请告白

主函数调用:

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

【问题讨论】:

    标签: python postgresql api flask cron


    【解决方案1】:

    如果您已经与数据库建立了连接,我相信您需要做的就是r.close()。我尝试使用光标和连接器函数调用查询(即select * from table)。如果我收到错误,我知道它没有连接。

    我还建议在调用 db 连接函数后关闭连接。

    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()
    

    【讨论】:

      猜你喜欢
      • 2021-12-27
      • 1970-01-01
      • 2017-01-07
      • 1970-01-01
      • 1970-01-01
      • 2014-02-24
      • 2020-11-10
      • 2015-10-31
      • 1970-01-01
      相关资源
      最近更新 更多