我正在尝试创建一个关于投注的“简单”网站。
我正在用 Python 和 Flask 实现这个网站。我已经创建了从投注网站抓取数据的代码,并从中创建了一个 CSV 文件。
我关心的是:我怎样才能每10分钟自动刷新我的csv文件,而不考虑是否有请求?
这是我用于创建应用程序的 Flask 文件:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from os import path
import time
import threading
db = SQLAlchemy()
DB_NAME = "database.db"
def create_app():
app = Flask(__name__)
app.config['SECRET_KEY']="abcjzllkk"
from .views import views
from .auth import auth
app.register_blueprint(views, url_prefix="/")
app.register_blueprint(auth, url_prefix="/")
return app
感谢您的回答!
最简单的答案是创建一个单独的进程来按设定的时间表监视和抓取 CSV,并且 Web 服务器应该是一个完全独立的进程,仅读取结果 CSV 文件。
查看 Python Celery、APScheduler 甚至一个简单的 cron 作业来自动化您的抓取工具。
唯一需要跟踪的是 CSV 更新的极短时间内的文件锁定。您可能可以使用数据库来解决这个问题,因为您已经有了 SQLAlchemy,您可以使用 SQLite,但老实说,在低流量站点上,您不应该遇到任何问题,并且重新加载或尝试两次比做任何更复杂的事情更快。