4
我有一个Flask网络应用程序,它显示来自rss提要的信息。我想定期处理RSS feed,例如每30分钟一次。提取一些信息并将其存储在sqlite数据库中。使APScheduler在网络应用程序的后台运行
但我不知道如何安排一个函数到一定的时间间隔。
我已经使用了APScheduler,和我的代码如下:
def main():
# Start the scheduler
filename = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'tmp')) + '\\' + 'spider.log'
logging.basicConfig(filename=filename, level=logging.DEBUG,format='%(levelname)s[%(asctime)s]: %(message)s')
sched = Scheduler()
sched.start()
sched.add_interval_job(run_job, minutes=30)
time.sleep(9999)
我有一个run.py功能
from app import app, spider
spider.main()
app.run(debug=True)
的app.run(debug=True)
开始瓶的Web应用程序。问题是代码永远不会达到app.run
。
那么是否有可能产生另一个进程来处理spider.main()
调用,并在后台运行进程?或者我应该使用另一种方法?
注:我知道我可以使用烧瓶芹菜,但对于这个小的应用程序,这似乎太重量级...
谢谢,它的工作原理! 我的代码基于这个答案APScheduler没有启动,并且无法在没有睡眠的情况下工作,但是重新安排代码使它在没有睡眠的情况下工作。 – happygoat 2012-07-11 06:56:50