Webjob de intermediere slot nu se oprește după ce o conductă a implementa în Azure Devops

0

Problema

În unele implementează fac la un App Service resursă care conține 2 sloturi (un production și staging sloturi), la webjob de montare nu este oprit după schimbul de sloturi.

Practic am în conducta de următoarele sarcini:

## 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

Dacă mă duc să-mi slot organizarea serviciului app este oprit. Dar, uneori, workjob continuă să funcționeze în timp ce nu ar trebui. deoarece am o sarcină care ar trebui să top continue webjobs după schimb cu producția.

În rezumă acest lucru se poate întâmpla:

  • continuă webjob în slotul de intermediere de funcționare
  • continuă webjob în slot producția de funcționare

Dupa cautari am gasit acest github fir https://github.com/projectkudu/kudu/issues/1886 Aceasta indică faptul că webjobs se execută în site-ul csm, care nu este afectată de site-ul de oprire de comandă. Totusi, am o sarcină care se presupune că se oprește tot continuă webjobs.

Nu există nici un motiv pentru ca acest lucru să se întâmple? Cum putem preveni acest lucru? Nu vreau un webjob cu vechiul cod de funcționare după o implementa.

1

Cel mai bun răspuns

1

Pentru a implementa o continuă WebJob într-un stat a oprit pur și simplu adăugați un fișier numit disable.job la rădăcina WebJob (binare), acest lucru va spune cadru WebJob este în prezent oprit.

Puteți adăuga Aplicația de Setare WEBJOBS_STOPPED la postul tau slot și setați-l la 1 (în portalul azure). Face această setare Automat Setarea astfel încât nu este schimbat cu producția.

Aceasta este ceea ce se întâmplă atunci când schimb o sursă de slot (de Intermediere) într-o țintă slot (de Producție).

  • În primul rând, de Intermediere site-ul are nevoie pentru a merge prin unele schimbări de setare pentru Setarea App și Conexiune Siruri de caractere care sunt marcate ca 'slot'. Există, de asemenea, alte modificări legate de sursa de control care ar putea avea nevoie să fie aplicate. Acest lucru provoacă Intermediere site-ul pentru a reporni, ceea ce este bine.

  • Apoi, Organizarea site-ului devine încălzit, printr-o cerere trimisă la rădăcină calea (de exemplu '/'), și de așteptare pentru el pentru a finaliza.

  • Acum că Intermediere site-ul este cald, devine schimbat în Producție. Nu există nici un moment în jos, deoarece se merge direct la unul cald site la altul.

  • În cele din urmă, site-ul care să fie utilizate de Producție și este acum de Intermediere, de asemenea, nevoie pentru a obține unele setări se aplică, făcându-l să reporniți. Din nou, acest lucru este bine, deoarece se întâmplă în organizarea site-ului.

Nu vreau un webjob cu vechiul cod de funcționare după o implementa.

  • Verificați dacă aveți un stadiu mediu (add-etapa a Webapp numele) și dacă deci, du-te la Azure portal de management și de a le opri.

  • Nu este suficient pentru a opri Webapp, trebuie să opriți WebJobs direct. Acest lucru se face (din nou portal) sub Setări->WebJobs și apoi faceți clic pe webjobs numele selectarea opri.

Vă rugăm să consultați Azure Aplicații Web (site-Uri) de Implementare Sloturi pentru mai multe detalii.

2021-11-24 08:07:57

Salut @HarshithaVeeramalla-MT cred că steagul WEBJOBS_STOPPED este o soluție foarte bună de aplicat la organizarea slot. O face cu grație opri webjob care a fost schimbat?
Nmaster88

Vă rugăm să consultați Gestionarea WebJobs
HarshithaVeeramalla-MT

WEBJOB_STOPPED cu o valoare de 1 pentru a opri toate WebJobs care rulează pe site-ului tău. Acest lucru poate fi util ca o modalitate de a preveni contradictorii WebJobs de funcționare atât în organizarea și producția de sloturi.
HarshithaVeeramalla-MT

multumesc am citit-o deja, dar nu pare să fie explicit despre cum se oprește continuu webjobs. Spune doar că se oprește, cred că acesta ucide proces.
Nmaster88

Continuă, puteți face pur și simplu de a pune un fișier numit "dezactiva.locuri de muncă" în rădăcina de WebJob director.
HarshithaVeeramalla-MT

Vă rugăm să consultați continuă WebJob punctul 6
HarshithaVeeramalla-MT

Sunt aplicarea WEBJOBS_STOPPED pavilion atât de intermediere slot. Se oprește continuu și a declanșat webjpbs de la care rulează ca un farmec.
Nmaster88

În alte limbi

Această pagină este în alte limbi

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