如何运行计划任务以持续运行Flask应用?

问题描述

问这个问题我很愚蠢,但是在涉及服务器相关任务方面我还是个新手。

我有一个flask应用程序,该应用程序从网站上抓取数据,并检查Postgres数据库是否需要对抓取的数据进行更新。现在,我希望这项任务能够持续运行,因为数据将在我的网站上可视化。

我发现Flask-APScheduler库能够成功每60分钟运行一次计划任务。现在我的主意短促的问题:

我通过从工作PC到服务器的SSH连接运行此任务。最终,我通常会停用虚拟环境,关闭控制台,然后关闭计算机。难道这也不会关闭我的脚本,并且它将不再更新我的数据库吗?

解决方法

如果在终端多路复用器(例如screentmuxhttps://github.com/tmux/tmux/wiki)中运行程序。您可以从ssh会话中detach进行tmux会话,即使您关闭ssh会话,它也将继续运行。当您想再次连接到正在运行的会话时,可以回退到服务器,然后attach自己回到仍在运行的后台tmux会话。

您可以在此处找到进行attachdetach的详细信息: https://github.com/tmux/tmux/wiki/Getting-Started#attaching-and-detaching