Azure Web作业和部署插槽

sg2wtvxw  于 2023-08-07  发布在  其他
关注(0)|答案(3)|浏览(170)

当我将具有QueueTrigger(在app.config中定义的队列连接)的持续运行的Azure WebJob部署到部署插槽(例如“Staging”)中时,会发生什么?
它将开始运行并侦听队列中的消息,还是只在生产插槽中启动?
我担心的是,如果将刚刚开始处理来自队列的消息,甚至它还没有在生产插槽中。如果是这种情况,是否应该将队列connectionstring从app.config移动到Azure Website config中,以便我的Staging和Production插槽可以在不同的队列上运行?

mfuanj7w

mfuanj7w1#

使用插槽粘滞设置,您现在可以设置

WEBJOBS_STOPPED = 1

字符串
在暂存插槽上。这将阻止webjobs在暂存槽上启动,并且当代码交换到生产环境时,该设置将保留在暂存槽上。
https://github.com/projectkudu/kudu/wiki/Web-jobs#configuration-settings

fafcakar

fafcakar2#

是的,它将在临时插槽中开始运行。
如果您不希望这样,那么将其指向一个暂存队列确实是一种方法。
更新(11/24/2014):你现在可以选择使用PowerShell来使某些设置和连接字符串“粘在插槽上”。详情请参阅post

z4iuyo4d

z4iuyo4d3#

我的解决方案是在部署后、交换插槽和/或在插槽中启动应用服务之前,从插槽中删除Web作业:

az webapp webjob continuous remove --webjob-name fooJob --name fooApp --resource-group fooApps --slot fooSlot

字符串
可以在Azure DevOps版本中通过使用内联powershell脚本添加Azure CLI任务来完成。

相关问题