RSSフィードからの情報を表示するFlask Webアプリがあります。RSS フィードを定期的に、たとえば 30 分ごとに処理したいと考えています。情報の一部を抽出し、sqlite db に保存します。
しかし、関数を特定の間隔でスケジュールする方法がわかりません。
私は 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)
Flask Web アプリが起動します。問題は、コードが到達しないことapp.run
です。
別のプロセスを生成してspider.main()
呼び出しを処理し、そのプロセスをバックグラウンドで実行することは可能ですか? または、別のアプローチを使用する必要がありますか?
NB: Flask-Celery を使用できることはわかっていますが、この小さなアプリでは重すぎるようです...