V některých nasadí dělám na App Service
zdroj, který obsahuje 2 sloty ( production
a staging
slots), webjob inscenace není zastavení po výměně letištních časů.
V podstatě mám v potrubí následující úkoly:
## 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
Když se půjdu podívat na můj slot inscenace aplikace je zastavena služba. Ale někdy workjob běží, dokud to neměl. když mám úkol, který by měl začátek všech průběžných webových úloh po swapu s výrobou.
Ve shrnutí se to může stát:
- kontinuální webjob ve slotu inscenace běží
- kontinuální webjob ve slotu výroba běží
Po hledání jsem našel tento github závit https://github.com/projectkudu/kudu/issues/1886 To znamená, že pro webjobs jsou spuštěny v scm místě, které není ovlivněno zastavit místo velení. Ještě, že mám úkol, který údajně zastaví všechny průběžných webových úloh.
Je nějaký důvod pro to, aby se stalo? Jak můžeme zabránit? Nechci se webjob se starým kódem, který běží po nasazení.
WEBJOBS_STOPPED
je to skvělé řešení, aplikované na pracovní slot. Dělá to elegantně zastavit webjob, který byl vyměněn?