当我将具有QueueTrigger(在app.config中定义的队列连接)的持续运行的Azure WebJob部署到部署插槽(例如“Staging”)中时,会发生什么?
它将开始运行并侦听队列中的消息,还是只在生产插槽中启动?
我担心的是,如果将刚刚开始处理来自队列的消息,甚至它还没有在生产插槽中。如果是这种情况,是否应该将队列connectionstring从app.config移动到Azure Website config中,以便我的Staging和Production插槽可以在不同的队列上运行?
3条答案
按热度按时间mfuanj7w1#
使用插槽粘滞设置,您现在可以设置
字符串
在暂存插槽上。这将阻止webjobs在暂存槽上启动,并且当代码交换到生产环境时,该设置将保留在暂存槽上。
https://github.com/projectkudu/kudu/wiki/Web-jobs#configuration-settings
fafcakar2#
是的,它将在临时插槽中开始运行。
如果您不希望这样,那么将其指向一个暂存队列确实是一种方法。
更新(11/24/2014):你现在可以选择使用PowerShell来使某些设置和连接字符串“粘在插槽上”。详情请参阅post。
z4iuyo4d3#
我的解决方案是在部署后、交换插槽和/或在插槽中启动应用服务之前,从插槽中删除Web作业:
字符串
可以在Azure DevOps版本中通过使用内联powershell脚本添加Azure CLI任务来完成。