Wdrażanie aplikacji dla pracowników .NET za pomocą Elastic Beanstalk
Pracuję nad szerszą aplikacją internetową wykorzystującą infrastrukturę AWS. Posiada dwa komponenty „pracownika”, które odczytują pracę z SQS i zapisują wyniki w bazie danych RDS. Jednym z nich jest Python i już pracuję nad pojedynczą instancją Elastic Beanstalk. Drugi używa .NET i obecnie pracuję nad jego wdrożeniem. W przypadku produkcji oba będą elastyczne z wieloma przypadkami.
Ponieważ te komponenty przetwarzania nie są aplikacjami internetowymi (tj. Nie odpowiadają na żądania http), muszę je wyraźnie wyłączyć. W przykładzie Pythona używam pliku .ebextensions:
container_commands:
02-start-command:
command: "nohup python scannerapp.py > foo.out 2> foo.err < /dev/null &"
leader_only: false
Jak mogę zrobić to samo z aplikacją .NET? Podobnie jak w powyższym przykładzie Pythona / Linuksa, plik konfiguracyjny systemu Windows obsługuje polecenia „Polecenia” i „Polecenia kontenera”, ale są one przeznaczone dla programów startowych (np. Instalatorów). To znaczy. uruchamianie / instalacja nie kończy się, dopóki polecenie nie zakończy pracy. Polecenie nohup rozwiązuje problem Pythona. Jak to zrobić za pomocą aplikacji pracownika .NET?
Czy może jest to zbyt trudne i powinienem rozważyć przeniesienie do MONO i użycie jednej z opcji Linuksa? (Oczekuje się, że koszty eksploatacji MONO będą bardziej opłacalne, więc jest już na liście spraw do załatwienia w przyszłości)