Azure Devops'ta bir boru hattı dağıtımından sonra hazırlama yuvasının Webjob'u durmuyor

0

Soru

Yaptığım bazı dağıtımlarda bir App Service 2 yuva içeren kaynak (a production ve staging yuvalar), yuvaların değiştirilmesinden sonra sahneleme webjobu durmuyor.

Temel olarak boru hattımda aşağıdaki görevler var:

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

Yuvama bakmaya gidersem, uygulama hizmeti durdurulur. Ama bazen workjob olmamalı süre çalışmasını sağlar. yana üretim ile takas sonra sürekli webjobs üst gereken bir görev var.

Velhasılı kelam bu olabilir :

  • yuva evreleme çalışan sürekli webjob
  • slot üretiminde sürekli webjob çalışması

Aradıktan sonra bu github iş parçacığını buldum https://github.com/projectkudu/kudu/issues/1886 Webjobs'un siteyi durdur komutundan etkilenmeyen scm sitesinde çalıştığını gösterir. Yine de, tüm sürekli web işlerini durduran bir görevim var.

Bunun olması için herhangi bir sebep var mı? Bunu nasıl önleyebiliriz? Dağıtımdan sonra eski kodla çalışan bir web işi istemiyorum.

1

En iyi cevabı

1

Sürekli bir web işini durdurulmuş bir durumda dağıtmak için, adı verilen bir dosya eklemeniz yeterlidir disable.job webjob'unuzun (ikili dosyalar) kökünde, bu, çerçeveye webjob'un şu anda durdurulduğunu söyleyecektir.

Uygulama Ayarı ekleyebilirsiniz WEBJOBS_STOPPED evreleme yuvanıza gidin ve şu şekilde ayarlayın: 1 (azure portalında). Bu ayarı, üretim ile değiştirilmeyecek şekilde 'Yuva Ayarı' yapın.

Kaynak yuvasını (Evreleme) hedef yuvaya (Üretim) değiştirdiğinizde olan budur.

  • İlk olarak, Hazırlama sitesinin Uygulama Ayarı ve 'yuva'olarak işaretlenmiş Bağlantı Dizeleri için bazı ayar değişikliklerinden geçmesi gerekir. Kaynak denetimi ile ilgili uygulanması gerekebilecek başka değişiklikler de vardır. Bu nedenler Hazırlama sitesine yeniden başlatın, hangisi iyi.

  • Ardından, Hazırlama sitesi, kök yoluna (yani'/') gönderilen bir istek alarak ve tamamlanmasını bekleyerek ısınır.

  • Artık Sahneleme alanı ısındığı için Üretime geçiyor. Aşağı zaman yoktur, çünkü doğrudan bir sıcak bölgeden diğerine gider.

  • Son olarak, Üretim ve eskiden bu site şimdi de bazı Ayarları Uygula, onu yeniden neden gerek sahneleniyor. Yine, evreleme alanında olduğu için bu iyi.

Dağıtımdan sonra eski kodla çalışan bir web işi istemiyorum.

  • Sahne alanı ortamınız olup olmadığını kontrol edin (Webapp adına sahne alanı ekleyin) ve eğer öyleyse Azure yönetim portalına gidin ve bunları durdurun.

  • Webapp'ı durdurmak yeterli değil, webjobs'u doğrudan durdurmalısınız. Bu, Ayarlar->WebJobs altında (yeni portalda) yapılır ve ardından durdur'u seçerek webjobs adına sağ tıklanır.

Daha fazla ayrıntı için lütfen Azure Web Uygulamaları (Web Siteleri) Dağıtım Yuvalarına bakın.

2021-11-24 08:07:57

Merhaba @ HarshithaVeeramalla - MT sanırım bayrak WEBJOBS_STOPPED evreleme yuvasına uygulanan mükemmel bir çözümdür. Değiştirilen web işini incelikle durduruyor mu?
Nmaster88

Lütfen WebJobs yönetimine bakın
HarshithaVeeramalla-MT

WEBJOB_STOPPED sitenizde çalışan tüm webjob'ları durdurmak için 1 değeriyle. Bu, çakışan WEB işlerinin hem hazırlama hem de üretim yuvalarında çalışmasını önlemenin bir yolu olarak kullanışlı olabilir.
HarshithaVeeramalla-MT

teşekkürler zaten okudum, ancak sürekli web işlerini nasıl durdurduğu konusunda açık görünmüyor. Sadece durduğunu söylüyor, sanırım süreci öldürüyor.
Nmaster88

Sürekli için, sadece "devre dışı bırak" adlı bir dosya koyarak yapabilirsiniz.WebJob dizininin kökündeki" iş".
HarshithaVeeramalla-MT

Lütfen sürekli WebJob noktası 6'ya bakın
HarshithaVeeramalla-MT

WEBJOBS_STOPPED bayrağını her iki hazırlama yuvasına da uyguluyorum. Hem sürekli hem de tetiklenen webjpb'lerin bir cazibe gibi çalışmasını durdurur.
Nmaster88

Diğer dillerde

Bu sayfa diğer dillerde

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