Python日程安排在Flask中不起作用
我正在将Schedule
导入Flask
。我的项目包含WSGI
但我对Flask
和WSGI
之间的关系知之甚少。现在我有三个主要文件:Python日程安排在Flask中不起作用
wsgi.py
:自动生成其他工具。app.py
:我在这里提出客户请求。用于测试Schedule
。
我想在启动服务器时启动一项长期任务。这里是wsgi.py
部分:
# -*- coding: utf-8 -*- from threading import Thread
import test
t = Thread(target=test.job)
t.start()
if __name__ == '__main__':
...
正如你看到我启动一个线程,并让it.Here就业工作是我的test.py
。
import schedule def job():
schedule.every(1).seconds.do(pr)
def pr():
print("I'm working...")
我的问题是,job
永远不会发生。
回答:
我发现我的问题,我从来没有让日程表执行任务。现在wsgi.py
看起来像这样。
# -*- coding: utf-8 -*- from threading import Thread
import test
schedule.every(1).seconds.do(test.job)
t = Thread(target=test.run_schedule)
t.start()
if __name__ == '__main__':
...
而且test.py
:
import schedule import time
start_time = time.time()
def job():
print("I'm working..." + str(time.time() - start_time))
def run_schedule():
while True:
schedule.run_pending()
time.sleep(1)
为了在单独的线程工作,我创建一个线程,该线程我循环每1ms。在循环中,schedule
调用run_pending
如果超时(在我的情况下为1秒)调用job
。
以上是 Python日程安排在Flask中不起作用 的全部内容, 来源链接: utcz.com/qa/261355.html