运行 在一天中的特定时间使用 gunicorn 的网络应用程序的最佳方式是什么?

What is the best way to run a web app using gunicorn at certain hours of the day?

我有一个 运行 带有 python 的小仪表板 - dash,我已经使用 GUNICORN 在生产环境中成功部署了它。

但是,我只想在工作时间 运行 它(比如 8:00 到 20:00)。最好的方法是什么? 使用 crontab 来 运行 GUNICORN 启动线?使用 crontab 在使用 noHup 启动 GUNICORN 进程后的一天结束时终止它?

谢谢!

一种可能的方法是直接在您的 Dash 应用程序中添加逻辑,例如

import dash
import dash_html_components as html
import datetime

def the_actual_layout():
    return html.Div("Hello world!")

def layout():
    hour = datetime.datetime.now().hour
    # If we are outside business hours, return an error message.
    if(hour < 8 or hour > 19):
        return html.Div("The app is only available between 08:00 and 20:00, please come back tomorrow.")
    # Otherwise, render the app.
    return the_actual_layout()

app = dash.Dash()
app.layout = layout

if __name__ == '__main__':
    app.run_server()    

这将消除 start/stop 应用程序对外部工具的需求。