运行 在 Flask 中为整个应用程序执行一次 cron 作业
Run cron job once for entire application in Flask
我正在考虑使用 APScheduler BackgroundScheduler 每隔几秒 运行 一个作业。
我的问题是如果我把调度器放在我的代码中,运行它在云端并且有成千上万的用户发出请求,调度器的工作会重复吗?
对我来说,Flask 创建的每个进程似乎都会有一个 BackgroundScheduler 线程 运行ning。这意味着在云上将重复工作。
如果是这种情况,有没有办法解决这个问题,而不必 运行 在单独的机器上编写一些脚本。我更愿意在 Flask 中工作,主要是因为成本和可维护性。
从架构的角度来看,你想要的是对数据库进行一些操作。理想情况下,这不应该是您的 Flask 应用程序的一部分。
Flask 是一个网络服务器。它应该像网络服务器一样使用。您想要 运行 的任务应该 运行 作为一个单独的脚本,使用 ApScheduler 或您可能需要的任何其他东西。两者之间需要分开,因为它们彼此不依赖。
假设明天你的 Flask 应用程序崩溃了,这是否意味着你的脚本不应该 运行?
如果您的需求类似于一个端点,您可以在其中安排时间和任务,然后需要在那个时候进行处理,那么将 APScheduler 和 Flask 结合在一起就很有意义了。
我正在考虑使用 APScheduler BackgroundScheduler 每隔几秒 运行 一个作业。
我的问题是如果我把调度器放在我的代码中,运行它在云端并且有成千上万的用户发出请求,调度器的工作会重复吗?
对我来说,Flask 创建的每个进程似乎都会有一个 BackgroundScheduler 线程 运行ning。这意味着在云上将重复工作。
如果是这种情况,有没有办法解决这个问题,而不必 运行 在单独的机器上编写一些脚本。我更愿意在 Flask 中工作,主要是因为成本和可维护性。
从架构的角度来看,你想要的是对数据库进行一些操作。理想情况下,这不应该是您的 Flask 应用程序的一部分。
Flask 是一个网络服务器。它应该像网络服务器一样使用。您想要 运行 的任务应该 运行 作为一个单独的脚本,使用 ApScheduler 或您可能需要的任何其他东西。两者之间需要分开,因为它们彼此不依赖。
假设明天你的 Flask 应用程序崩溃了,这是否意味着你的脚本不应该 运行?
如果您的需求类似于一个端点,您可以在其中安排时间和任务,然后需要在那个时候进行处理,那么将 APScheduler 和 Flask 结合在一起就很有意义了。