python – Flask – Apscheduler无法调用执行数据库命令的函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – Flask – Apscheduler无法调用执行数据库命令的函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1129字,纯文字阅读大概需要2分钟。
内容图文
![python – Flask – Apscheduler无法调用执行数据库命令的函数](/upload/InfoBanner/zyjiaocheng/910/17cac837c4914fd18c9361c695d6e15d.jpg)
Python: 2.7.3
Flask: 0.9
嗨,我想用Apscheduler制作汽车模拟器.每辆车在数据库中都有距离列,将定期增加.
这是导入部分
from __future__ import with_statement
from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash, views
from sqlite3 import dbapi2 as sqlite3
from contextlib import closing
from apscheduler.scheduler import Scheduler
这是代码的片段:
sched = Scheduler()
sched.add_interval_job(moveAllCars, seconds = 5)
sched.start()
def moveAllCars():
print "debug 1"
dbCommand = g.db.execute('SELECT CarID FROM Car')
print "debug 2"
#and so on
我没有编写完整的代码,因为错误发生在’debug 1’之后,并显示错误消息:找不到处理程序“apscheduler.scheduler”的处理程序.谷歌没有多大帮助.
但调度程序仍在运行,每5秒只打印一次’debug1′.错误消息仅在第一个循环期间出现.
谁知道解决方案?谢谢你
[UPDATE]
使用日志记录后,我发现它是RunTimeError:在请求上下文之外工作.除了使用app.test_request_context之外还有其他解决方案吗?
解决方法:
g可能是threading.local().不同的线程在其中看到不同的值.
g.db可能为每个请求分配了一个新的数据库连接.没有当前请求 – 没有连接.
您可以在move_all_cars()中创建数据库连接,或者将其作为参数显式传递.
内容总结
以上是互联网集市为您收集整理的python – Flask – Apscheduler无法调用执行数据库命令的函数全部内容,希望文章能够帮你解决python – Flask – Apscheduler无法调用执行数据库命令的函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。