- 主题:如何自己开一个http服务器并通知别人来访问?
【 在 vwx 的大作中提到: 】
: 真走火入魔
: 搜到的代码
: import http.server
: import socketserver
: PORT = 8080
: Handler = http.server.SimpleHTTPRequestHandler
: with socketserver.TCPServer(("", PORT), Handler) as httpd:
: ### 写通知
: httpd.serve_forever()
这不就是我说的那种明显的错误么?
--
FROM 139.227.19.*
拜托你再读一遍我的提问啊
我问的是怎么在serve_forever *之后* 通知对方
【 在 vwx 的大作中提到: 】
: 标 题: Re: 如何自己开一个http服务器并通知别人来访问?
: 发信站: 水木社区 (Fri Jun 21 14:51:40 2024), 转信
:
: serve_forever在对面收通知发请求前开始工作就行
: 看代码似乎不用太担心:
:
: def serve_forever(self, poll_interval=0.5):
: """Handle one request at a time until shutdown.
:
: Polls for shutdown every poll_interval seconds. Ignores
: self.timeout. If you need to do periodic tasks, do them in
: another thread.
: """
: self.__is_shut_down.clear()
: try:
: # XXX: Consider using another file descriptor or connecting to
: the
: # socket to wake this up instead of polling. Polling reduces our
: # responsiveness to a shutdown request and wastes cpu at all
: other
: # times.
: with _ServerSelector() as selector:
: selector.register(self, selectors.EVENT_READ)
:
: while not self.__shutdown_request:
: ready = selector.select(poll_interval)
: # bpo-35017: shutdown() called during select(), exit
: immediately.
: if self.__shutdown_request:
: break
: if ready:
: self._handle_request_noblock()
:
: self.service_actions()
: finally:
: self.__shutdown_request = False
: self.__is_shut_down.set()
:
:
: 【 在 JulyClyde 的大作中提到: 】
: : 标 题: Re: 如何自己开一个http服务器并通知别人来访问?
: : 发信站: 水木社区 (Fri Jun 21 11:54:00 2024), 转信
: :
: :
: : 【 在 vwx 的大作中提到: 】
: : : 真走火入魔
: : : 搜到的代码
: : : import http.server
: : : import socketserver
: : : PORT = 8080
: : : Handler = http.server.SimpleHTTPRequestHandler
: : : with socketserver.TCPServer(("", PORT), Handler) as httpd:
: : : ### 写通知
: : : httpd.serve_forever()
: : 这不就是我说的那种明显的错误么?
: :
: : --
: :
: : ※ 来源:·水木社区 mysmth.net·[FROM: 139.227.19.*]
:
: --
: 忘记我。否则就太迟了。
:
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 61.149.143.*]
--
修改:JulyClyde FROM 139.227.19.*
FROM 139.227.19.*
我的提问不就是这段么
【 在 kawolu 的大作中提到: 】
: 我很怀疑楼主是否能看懂下面的文字
--
FROM 139.227.19.*
我看了一下,BaseServer允许继承,在TCPServer里已经有实际内容了,调用了listen
我新建的class继承自BaseHTTPServer,还需要先从super调用原来父类里的东西,然后再运行自己的代码通知对方webhook
如果能进一步干净一点就好了
【 在 JulyClyde 的大作中提到: 】
: 标 题: Re: 如何自己开一个http服务器并通知别人来访问?
: 发信站: 水木社区 (Tue Jun 18 13:30:18 2024), 转信
:
: class BaseServer:
: Methods that may be overridden:
: - server_activate()
:
: 是指这个吗?
: 所以我只要继承TCPServer,覆盖这个函数,然后用它和handler组合一下做出新的server来对外服务就可以了?
: 【 在 hgoldfish 的大作中提到: 】
: : 在 serve_forever() 之前,Python 的 socketserver 会调用 server_activate() 这个方法来 listen(),你可以在这个方法里面,自己手动调一下 listen(),把自己获得的服务器地址从这里发出去。
:
: --
:
: ※ 来源:·水木社区 mysmth.net·[FROM: 139.227.19.*]
--
修改:JulyClyde FROM 139.227.19.*
FROM 139.227.19.*
现在我也觉得,确实是需要这么一个hook了
【 在 adoal 的大作中提到: 】
: 那……要不咱给上游http server框架的开发者提一个PR吧
--
FROM 139.227.19.*
多sb啊……
跟腾讯一样
而且无论你设置多少间隔,最终都会败在间隔不合适这个问题上
【 在 tgfbeta 的大作中提到: 】
: 马斯克五步法:
: 1 make requirement less dumb
: 你弄一个外部的进程,周期性的检测server状态,一旦好了就通知第三方我好了,不就完了?
--
修改:JulyClyde FROM 139.227.19.*
FROM 139.227.19.*
那你再读一遍吧
【 在 PaoloMaldini 的大作中提到: 】
: 我甚至没理解这个需求,http服务不都是监听请求的么
: 你这个需求特殊在哪?。。
--
FROM 139.227.19.*
是个好主意
无侵入
【 在 tgfbeta 的大作中提到: 】
: 那就把日志管道给这个进程
: 一旦在日志里宣布启动完成,就让这个程序发通知
--
FROM 139.227.19.*