![](/img/trans.png)
[英]What are the advantages of using Depends in FastAPI over just calling a dependent function/class?
[英]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.