繁体   English   中英

每当调用 def function 时收到新的 webhook 时,FastAPI 会一遍又一遍地重新启动服务器

[英]FastAPI restart server over and over again whenever a new webhook is received when calling a def function

我创建了一个简单的 fastapi 服务器来接收 webhook,只要有 webhook 信号,它就会调用 function printmessage() 打印消息“WEBHOOK RECEIVED”。 并且代码似乎可以工作,但是每当有新的 webhook 时,我的服务器将再次重新启动,这不是我打算做的,而且问题似乎来自调用 function,似乎每当调用 function 时,它将重新运行 main.py(“程序启动...”在收到新的 webhook 时打印出来,但它假设只运行一次)而不是只运行一次,但我只想让程序运行 function print message()只是重新运行所有代码,我该如何解决这个问题?

#main.py
import time
from fastapi import Request, FastAPI

def printmessage():
    print("WEBHOOK RECEIVED") 

app = FastAPI()
print("PROGRAM LAUNCH...")
print("WEBHOOK RECEIVE READY...")
@app.post("/webhook")
async def webhook(request : Request):     
    printmessage()
    return 'WEBHOOK RECEIVED'       
  

OUTPUT:

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [984] using statreload
WARNING:  The --reload flag should not be used in production on Windows.
PROGRAM LAUNCH...
WEBHOOK RECEIVE READY...
INFO:     Started server process [13308]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     127.0.0.1:49353 - "POST /webhook HTTP/1.1" 200 OK
PROGRAM LAUNCH...
WEBHOOK RECEIVE READY...
WEBHOOK RECEIVED
INFO:     127.0.0.1:49353 - "POST /webhook HTTP/1.1" 200 OK
PROGRAM LAUNCH...
WEBHOOK RECEIVE READY...
WEBHOOK RECEIVED
INFO:     127.0.0.1:49524 - "POST /webhook HTTP/1.1" 200 OK
PROGRAM LAUNCH...
WEBHOOK RECEIVE READY...
WEBHOOK RECEIVED
INFO:     127.0.0.1:49524 - "POST /webhook HTTP/1.1" 200 OK
PROGRAM LAUNCH...
WEBHOOK RECEIVE READY...
WEBHOOK RECEIVED
INFO:     127.0.0.1:49524 - "POST /webhook HTTP/1.1" 200 OK
PROGRAM LAUNCH...
WEBHOOK RECEIVE READY...
WEBHOOK RECEIVED

预定 OUTPUT:

INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [24368] using statreload
WARNING:  The --reload flag should not be used in production on Windows.
PROGRAM LAUNCH...
WEBHOOK RECEIVE READY...
INFO:     Started server process [38368]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
WEBHOOK RECEIVED
INFO:     127.0.0.1:49675 - "POST /webhook HTTP/1.1" 200 OK
WEBHOOK RECEIVED
INFO:     127.0.0.1:49675 - "POST /webhook HTTP/1.1" 200 OK
WEBHOOK RECEIVED
INFO:     127.0.0.1:49675 - "POST /webhook HTTP/1.1" 200 OK
WEBHOOK RECEIVED
INFO:     127.0.0.1:49675 - "POST /webhook HTTP/1.1" 200 OK
WEBHOOK RECEIVED
INFO:     127.0.0.1:49675 - "POST /webhook HTTP/1.1" 200 OK

我的原始命令是“uvicorn main:app --reload”,更改为“uvicorn main:app”后问题解决了,感谢 AKX 和 MatsLindh

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM