En algunos de los despliega estoy haciendo para un App Service
de recursos que contiene 2 ranuras (una production
y staging
ranuras), el webjob de la puesta en escena es de no parar después del intercambio de las ranuras.
Básicamente tengo en mi canalización de las siguientes tareas:
## Start App Service (staging)
- task: AzureAppServiceManage@0
displayName: 'Start Azure App Service: some-app-webjob (staging)'
inputs:
azureSubscription: 'xxx'
Action: 'Start Azure App Service'
WebAppName: 'some-app-webjob'
SpecifySlotOrASE: true
ResourceGroupName: 'some-rg-app-webjob'
Slot: staging
##Start staging continuous webjob
- task: AzureAppServiceManage@0
displayName: 'Start all continuous webjobs: some-app-webjob (staging)'
inputs:
azureSubscription: 'Subscrição do Visual Studio Enterprise(c9f20c2b-15cf-41fb-8122-ddf095c6db02)'
Action: 'Start all continuous webjobs'
WebAppName: 'some-app-webjob'
SpecifySlotOrASE: true
ResourceGroupName: 'some-rg-app-webjob'
Slot: 'staging'
## Swap Slots (staging to production)
- task: AzureAppServiceManage@0
displayName: 'Swap Slots: some-app-webjob'
inputs:
azureSubscription: 'xxx'
WebAppName: 'some-app-webjob'
ResourceGroupName: 'some-rg-app-webjob'
SourceSlot: staging
TargetSlot: production
# Stop WebJobs running Staging
- task: AzureAppServiceManage@0
displayName: 'Stop all continuous webjobs: some-app-webjob (staging)'
inputs:
azureSubscription: 'xxx'
Action: 'Stop all continuous webjobs'
WebAppName: 'some-app-webjob'
SpecifySlotOrASE: true
ResourceGroupName: 'some-rg-app-webjob'
Slot: staging
## Stop App Service (staging)
- task: AzureAppServiceManage@0
displayName: 'Stop Azure App Service: some-app-webjob (staging)'
inputs:
azureSubscription: 'xxx'
Action: 'Stop Azure App Service'
WebAppName: 'some-app-webjob'
SpecifySlotOrASE: true
ResourceGroupName: 'some-rg-app-webjob'
Slot: staging
Si he de ir a buscar a mi espacio de realización de la aplicación se ha detenido el servicio. Pero a veces la workjob sigue funcionando aunque no debería. ya que tengo una tarea que debe top de todas continua de webjobs después del intercambio con la producción.
En resumen esto puede suceder:
- continua webjob en la ranura de ensayo en ejecución
- continua webjob en la ranura de la producción en marcha
Después de buscar he encontrado este hilo de github https://github.com/projectkudu/kudu/issues/1886 Indica que webjobs se están ejecutando en scm sitio que no está afectado por el centro de comando. Aún así, tengo una tarea que, supuestamente, se detiene todo el continuo de webjobs.
¿Hay alguna razón para que esto suceda? ¿Cómo podemos evitar esto? No quiero un webjob con el viejo código que se ejecuta después de implementar.
WEBJOBS_STOPPED
es una gran solución aplicada para la estadificación de la ranura. Hace detener correctamente el webjob que fue canjeado?