Załóżmy, że dołączam dość długo działającą startup task do mojej roli Azure - działając przez kilka minut. Co się stanie, jeśli zadanie uruchamiania będzie "zbyt długie".Czy istnieje długi limit czasu uruchamiania usługi Azure Role?
Aktualnie testuję Emulator obliczeń i przestrzegam następujących zasad.
Mam plik .zip 450 megabajtów razem z Info-Zip unzip. Zadanie uruchomienia rozpakowuje archiwum. Rozpoczyna się wdrażanie i zajmuję się Menedżerem zadań. Uruchomione zostaną liczne procesy serwisowe, a następnie uruchom plik unzip.exe. Po około dwóch minutach wszystkie te procesy zatrzymują się i zaczynają od nowa, a unzip.exe uruchamia się ponownie.
Wygląda na to, że wdrożenie może działać przez około dwie minuty, a następnie jest wymuszane resetowanie i uruchamiane ponownie.
Czy to oczekiwane zachowanie? Czy utrzymuje się na prawdziwej chmurze? Czy istnieją jakieś twarde ograniczenia dotyczące czasu, jaki może upłynąć uruchomienie roli? Jak rozwiązać tę sytuację, z wyjątkiem przenoszenia rozpakowywania do RoleEntryPoint.OnStart()
?
Jak mogę wywołać tę metodę z poziomu zadania uruchamiania? – sharptooth
Nie sądzę, że metoda SetBusy ma zastosowanie do zadań uruchamiania. Możesz użyć SetBusy do swojej roli, jeśli twój kod RoleEntryPoint (np. Metoda Run) robiłby coś czasochłonnego i nie chciał, aby kontroler Fabric pomyślał, że został zawieszony. Jeśli używasz taskType = "proste" zadania uruchamiania (takie, które są uruchamiane do zakończenia przed wywołaniem OnStart), to i tak system równoważenia obciążenia nie wysyła jeszcze ruchu do ciebie. A jeśli używasz albo innego uruchomienia typu taskType (tła lub pierwszego planu), te działałyby niezależnie od twoich metod OnStart i Run. – codingoutloud