Webjob inscenace slot nezastaví po potrubí nasazení v Azure Devops

0

Otázka

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í.

1

Nejlepší odpověď

1

Nasazení kontinuální WebJob v zastaveném stavu jednoduše přidejte soubor s názvem disable.job v kořenovém adresáři WebJob (binární soubory), to vám řekne rámec, který se WebJob je v současné době zastaven.

Můžete přidat Nastavení Aplikace WEBJOBS_STOPPED do své inscenace slotu a nastavte ji na 1 (v azure portálu). Aby toto nastavení 'Slot Nastavení', takže to není zaměnit s výrobou.

To je to, co se stane, když vyměníš zdroj patice (Staging) do cílové pozici (Výrobní).

  • Za prvé, Pracovní místo musí jít přes některé změny nastavení pro Nastavení Řetězce Připojení, které jsou označeny jako 'automatu'. Tam jsou také jiné změny týkající se zdroje ovládání, které může být nutné použít. To způsobí, že Pracovní místa restartovat, což je v pořádku.

  • Další, na Pracovní místo dostane, zahřeje, tím, že žádosti, zaslané na jeho kořenovém adresáři (tj. '/'), a čeká na dokončení.

  • Nyní, že Pracovní místo je teplé, dostane přeměněna na Výrobu. Není čas dolů, protože to jde přímo z jednoho teplého místa na druhé.

  • Konečně web, který býval Výroby a je nyní Představovat také potřebuje, aby se některá nastavení použít, přimět to, aby restartovat. Znovu, to je v pořádku, protože se to stane v pracovní stránky.

Nechci se webjob se starým kódem, který běží po nasazení.

  • Zkontrolujte, zda máte umělecké prostředí (add-fázi Webapp jméno) a pokud ano, tak v Azure management portál a zastavit je.

  • To není dost, aby přestat Webapp, musíte zastavit pro webjobs přímo. To se provádí (v novém portálu) v nabídce Nastavení->pro webjobs a klepněte pravým tlačítkem myši na pro webjobs jméno výběru zastavit.

Naleznete Azure Web Aplikací (Weby) Deployment Sloty pro více informací.

2021-11-24 08:07:57

Dobrý den, @HarshithaVeeramalla-MT myslím, že ta vlajka WEBJOBS_STOPPED je to skvělé řešení, aplikované na pracovní slot. Dělá to elegantně zastavit webjob, který byl vyměněn?
Nmaster88

HarshithaVeeramalla-MT

WEBJOB_STOPPED s hodnotou 1 pro zastavení pro webjobs běží na vašem webu. To může být užitečné jako způsob, aby se zabránilo konfliktní pro webjobs z provozu a to jak v pracovní a výrobní sloty.
HarshithaVeeramalla-MT

díky, už jsem to četl, ale to se nezdá být explicitní na to, jak to zastaví průběžných webových úloh. To jen říká, že to zastaví, předpokládám, že to zabije proces.
Nmaster88

Pro kontinuální, můžete to udělat jednoduše tím, že soubor s názvem "zakázat.práce, zaměstnání" v kořenovém adresáři WebJob firem.
HarshithaVeeramalla-MT

Naleznete kontinuální WebJob bod 6
HarshithaVeeramalla-MT

Jsem použití WEBJOBS_STOPPED vlajky na obě inscenace slot. To zastaví jak nepřetržité a spustil webjpbs z běží jako kouzlo.
Nmaster88

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................