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