db.session.close()之后,芹菜节拍不会关闭数据库连接

时间:2019-05-08 15:10:41

标签: flask-sqlalchemy celerybeat

我正在运行一个芹菜节拍任务,该任务查询一张桌子并更新另一张桌子。我以db.session.close()结束任务,但是会话保持打开状态,并且当连接数超过我的帐户限制时最终使我的数据库实例崩溃。

手动关闭空闲会话。我是在小时后的1分钟运行节拍时间表,因此很容易查看哪些连接属于节拍任务。

@celery.task(name="category_count")
def category_count():
    categories = CategoryModel.find_all()
    for category in categories:
        count = MemberModel.count_category(category.category_name)
        if category.count != count:
            category.count = count
            db.session.add(category)
    db.session.commit()
    db.session.close()

celery.conf.CELERYBEAT_SCHEDULE = {
    "my_task": {
        "task": "category_count",
        "schedule": crontab(hour="*", minute=1)
    }
}

即使在db.session.close()之后,连接仍保持打开状态。

0 个答案:

没有答案