我对Azure云非常陌生,正在Azure python 3.8应用程序服务中进行python后端应用程序部署。 它是一个独立的应用程序,有一个无限循环来轮询来自Azure服务总线队列的消息,并相应地执行一些操作。 请注意,此应用程序不在任何常见的web框架(如Flask和Django)上运行
问题是,应用程序服务在部署到azure云后不断重新启动。应用程序的根文件夹中已存在application.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))
用具有hello world端点的基于flask的部署替换此轮询逻辑似乎可以正常工作
请帮助我了解哪里出了问题,以及如何在azure app service中运行长期运行的独立python应用程序
如果希望监视服务总线上的消息,则不需要长时间的轮询web作业。您可以使用Azure函数,该函数使用http触发器在新消息到达时调用。见https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-azure-function-azure-cli?pivots=programming-language-python&tabs=cmd%2Cbrowser#deploy-the-function-app-project-to-azure
这将更有效率,因为您可以放弃将webjob设置为Continuous所需的AlwaysOn应用程序服务,这可能是由您的问题的原因造成的
相关问题 更多 >
编程相关推荐