APScheduler调度任务函数无法执行数据库的查询操作!如何破? 多谢!

benbenmao2012 2018-03-06 06:35:03
代码如下:
from apscheduler.schedulers.blocking import BlockingScheduler
import datetime
import sqlite3

def DB_Task():
print("查询结果:) #此句可以打印输出
Sqlstr= "select id,name from mytable where id='6555223710953323366'" #此句之后(含此句)一直没有执行
recordset=cur.execute(Sqlstr).fetchall()
conn.commit()
for row in recordset:
print(row)

if __name__=="__main__":
conn = sqlite3.connect('history.db')
cur = conn.cursor()
scheduler = BlockingScheduler() #不管用阻塞的、非阻塞的都不行。
scheduler.add_job(func=DB_Task, trigger='cron', second='*/10')
scheduler.start()

如果单独调用DB_Task(),一切执行正常。如果用scheduler.add_job去执行定时任务,则从Sqlstr= "select id,name from mytable where id='6555223710953323366'" 开始都不会被执行。就是不停的打印“查询结果” “查询结果” “查询结果” “查询结果”.........
各位大拿,这是什么原因,怎么解决啊?折腾了一天了。。。。
多谢!
...全文
610 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Anhanguera 2019-04-06
  • 打赏
  • 举报
回复
我也碰到和你差不多的问题,你解决了吗
benbenmao2012 2018-03-07
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry 的回复:
打印一下recordset,看有没有数据
没用的,recordset是空的,给recordset赋值的语句根本就没执行。 我怀疑是多线程的问题
oyljerry 2018-03-06
  • 打赏
  • 举报
回复
打印一下recordset,看有没有数据

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧