Python Waitress作为Windows服务

4

我在Windows上使用waitress和falcon编写了一个API服务器,它运行得很好,但现在我需要将其作为服务运行以便进行监控。有什么最好的方法可以做到这一点?我看过pywin32和cherrypy自己的实现,但是在通过python停止waitress时遇到了困难。我知道在使用cmd时可以使用ctrl-break,但不确定在使用python时应该使用什么。

def SvcStop(self):
    self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
    cherrypy.server.stop()
    win32event.SetEvent(self.stop_event)

我看不到waitress有像cherrypy一样的停止功能。
任何帮助都会很好。即使是在pywin32之外,我也需要一些关于如何在Windows上将waitress作为服务运行的详细信息,因为有许多方法可以做到这一点,我不确定哪种方法是推荐的。
谢谢, 安东尼
2个回答

0

我知道这个问题有点老了,但我刚刚在我的问题这里中发布了一个答案,它也可能回答了这个问题。

简而言之,答案是使用pywin32加上一个子线程。
停止也给我带来了麻烦,我找到的答案似乎很干净地解决了这个问题,但我非常想听听对这种做法可能出现的任何复杂性的反馈。


0

除了强制终止线程,我不知道如何停止Waitress。您尝试过它是否能响应某些信号吗?

除了使用pywin32外,您还可以尝试使用非吸式服务管理器NSSM


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接