如何在Azure应用程序服务环境中执行长时间运行的python服务总线轮询作业
我对Azure云非常陌生,正在Azure python 3.8应用程序服务中进行python后端应用程序部署。 它是一个独立的应用程序,有一个无限循环来轮询来自Azure服务总线队列的消息,并相应地执行一些操作。 请注意,此应用程序不在任何常见的web框架(如Flask和Django)上运行 问题是,应用程序服务在部署到azure云后不断重新启动。应用程序的根文件夹中已存在application.py文件 下面是application.py代码结构:如何在Azure应用程序服务环境中执行长时间运行的python服务总线轮询作业,python,python-3.x,azureservicebus,azure-web-app-service,polling,Python,Python 3.x,Azureservicebus,Azure Web App Service,Polling,我对Azure云非常陌生,正在Azure python 3.8应用程序服务中进行python后端应用程序部署。 它是一个独立的应用程序,有一个无限循环来轮询来自Azure服务总线队列的消息,并相应地执行一些操作。 请注意,此应用程序不在任何常见的web框架(如Flask和Django)上运行 问题是,应用程序服务在部署到azure云后不断重新启动。应用程序的根文件夹中已存在application.py文件 下面是application.py代码结构: import os import time
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触发器在新消息到达时调用。看 这将更有效率,因为您可以放弃将webjob设置为Continuous所需的应用程序服务,这很可能是由导致您出现问题的原因决定的