安排在 Python 中不工作的任务
scheduling a task not working in Python
我正在尝试每 5 秒安排一个任务,这是我所做的:
conn = connect('mydatabase.db')
c = conn.cursor()
c.execute('CREATE TABLE IF NOT EXISTS RSSEntries (entry_id INTEGER PRIMARY KEY AUTOINCREMENT, title , url , date );')
def checkLink(linko):
c.execute("SELECT entry_id FROM RSSEntries WHERE url = ?", (linko,))
datas=c.fetchall()
if len(datas)==0:
return True
else:
return False
def storeData():
data = feedparser.parse("http://www...")
for i in range(len(data['entries'])):
if checkLink(data.entries[i].link) is True:
print "doesn't exist"
c.execute("insert into RSSEntries VALUES\
(NULL,'%s', '%s', '%s')" % (data.entries[i].title,data.entries[i].link, data.feed.updated))
else:
print "exist"
schedule.every(5).seconds.do(storeData)
conn.commit()
但是 storeData
方法无法访问..
如果我 运行 storeData()
而不是 schedule.every(5).seconds.do(storeData)
代码工作完美,我做错了什么
欢迎任何建议或其他方法来完成此任务。
我认为您在脚本末尾缺少调度程序循环:
while True:
schedule.run_pending()
time.sleep(1)
我正在尝试每 5 秒安排一个任务,这是我所做的:
conn = connect('mydatabase.db')
c = conn.cursor()
c.execute('CREATE TABLE IF NOT EXISTS RSSEntries (entry_id INTEGER PRIMARY KEY AUTOINCREMENT, title , url , date );')
def checkLink(linko):
c.execute("SELECT entry_id FROM RSSEntries WHERE url = ?", (linko,))
datas=c.fetchall()
if len(datas)==0:
return True
else:
return False
def storeData():
data = feedparser.parse("http://www...")
for i in range(len(data['entries'])):
if checkLink(data.entries[i].link) is True:
print "doesn't exist"
c.execute("insert into RSSEntries VALUES\
(NULL,'%s', '%s', '%s')" % (data.entries[i].title,data.entries[i].link, data.feed.updated))
else:
print "exist"
schedule.every(5).seconds.do(storeData)
conn.commit()
但是 storeData
方法无法访问..
如果我 运行 storeData()
而不是 schedule.every(5).seconds.do(storeData)
代码工作完美,我做错了什么
欢迎任何建议或其他方法来完成此任务。
我认为您在脚本末尾缺少调度程序循环:
while True:
schedule.run_pending()
time.sleep(1)