我对Azure云很陌生,正在Azure python 3.8应用服务中部署一个python后端应用.这是一个独立的应用,它有一个无限循环,从Azure服务总线队列中轮询消息,并做一些相应的操作.请注意,这个应用没有运行在任何常见的Web框架上,如Flask和Django。
问题是,该应用服务在部署到azure云后不断重启。该应用有 中的应用程序.py 文件已经存在于根文件夹中。
这里是application.py的代码结构。
import os
import time
from flask import Flask
app = Flask(__name__)
def poll_asb_queue():
while True:
print('I am still polling’)
# Poll queue logic here
# Do logic based on the message payload
time.sleep(5)
### Flow starts here ###
try:
poll_asb_queue()
except Exception as error:
print('ERROR', str(error))
用基于flask的部署替换这个轮询逻辑,有一个hello world端点,似乎可以正常工作。
请帮助我理解我哪里出错了,以及如何在 azure 应用服务中运行一个长期运行的独立 python 应用程序。
如果你想监控服务总线上的消息,你不需要一个很长的轮询网络作业。你可以选择一个 Azure Function,它使用 http 触发器在新消息到达时调用。请参阅 https:/docs.microsoft.comen-usazureazure-functionsfunctions-create-first-azure-function-azure-cli?pivots=programming-language-python&tabs=cmd%2Cbrowser#deploy-the-function-app-project-to-azure。.
这样做会更有效率,因为你可以放弃使用 始终在线 你的webjob所需的App Service被设置为Continous,这可能是导致你的问题的原因。