当前位置: 首页 > 知识库问答 >
问题:

如何监控WSGI Flask应用程序中的更改?

孔志强
2023-03-14

我正在为我的树莓派设计一个非常简单的Web GUI。

同时,我正在学习WSGI和Flask应用程序。因为我使用的是raspberry pi,所以我希望坚持使用apache服务器,并在Flask服务器上使用WSGI(我完全不知道,但应该有一天再研究)。

我看到Flask应用程序需要对wsgi脚本进行触摸调用,以便Flask守护进程重建整个应用程序,例如,请参见此处。然而,在开发时,我发现这是一个非常恼人的特性。

ReloadingSourceCode wiki提供了一段代码,声称消除了这一限制。(锚点已断开,请搜索“Monitoring\u for\u code\u Changes”。代码格式似乎也已断开…)

不过,这似乎只适用于简单的WSGI应用程序。

如果这也适用于Flask应用程序,我应该把代码放在哪里?

如果不是的话,有没有其他方法可以删除“触摸”的东西?

共有1个答案

丘智志
2023-03-14

我不确定您是否希望在私有项目之外的任何东西上使用此功能(就像我假设您的RPi是一样),但我在界面中的私有/login_required路由上使用了下面的代码。

也许不太漂亮,但对我来说很管用。

@app.route("/reload")
@login_required
def reload():
    import signal
    os.kill(os.getpid(), signal.SIGINT)
    flash(f'Reloaded at {str(datetime.now().strftime("%-I:%M %p"))} ')
    return redirect(url_for("home"))

我使用“flash”消息只是为了检查它在重定向回家时发生的情况——但如果不需要,请将其排除在外。

 类似资料:
  • 除了Spark的监控功能,Spark Streaming增加了一些专有的功能。应用StreamingContext的时候,Spark web UI 显示添加的Streaming菜单,用以显示运行的receivers(receivers是否是存活状态、接收的记录数、receiver错误等)和完成的批的统计信息(批处理时间、队列等待等待)。这可以用来监控 流应用程序的处理过程。 在WEB UI中的Pr

  • 问题内容: 现在,我正在开发类似于bash的命令行应用程序。为了实现自动完成功能,我必须知道用户已经按下Tab键。但是我不知道如何在控制台应用程序中监听键盘事件。 有任何想法吗?提前致谢。 问题答案: 这比看起来要复杂一些。 也许您应该看一下为您处理所有事情的jline项目。

  • 需求-对作为kubernetes集群一部分在pods中运行的应用程序进行新的Relic监控。 我已经在我的集群上安装了Kube-state-metrics,并且能够使用新的见解查看kubernetes仪表板。 此外,还需要为其配置应用程序监控。下列的https://blog.newrelic.com/2017/11/27/monitoring-application-performance-in-

  • 大家下午好,我有一个关于将应用程序本身的监控添加到prometheus的问题。我使用的是spring boot actuator,并相应地查看普罗米修斯的值:https://example.com/actuator/prometheus我通过默认头盔图表()为它添加了默认值,从而提升了普罗米修斯: 普罗米修斯本身可以在http://ex.com/prometheus部署。我的springboot应

  • 我有一个JSF2/PrimeFaces/JBoss应用程序,它必须时不时地运行一些长期进程。规范说,一旦过程开始,它的进展必须被监视,显示它的中间阶段的发生。 步骤的总数在开始时被检索,进度条必须显示流程的演变和剩余时间的估计,基于在流程执行期间计算的统计数据。这并不是仅仅显示出某些事情正在发生,而是实际显示出这个过程还有多少事情要做。 即使用户关闭了页面,进程也必须继续,如果用户返回到页面,它必