Dzięki za odpowiedzi. Nie chcę wywoływać żadnej dyskusji o wyższości X nad Y - załóżmy, że przywołane inne frameworki nie są wiodące, a języki przemilczmy :D.
Ale, for the record - komendy są w Django w Pythonie i w Symfony w PHP - to jednak narzędzia o innej filozofii więc uznałem, że w .net to się robi zupełnie inaczej. W nodejs robiłem do tego po prostu osobne pliki js
na każdą z "komend".
Przepraszam też, że wypowiedziałem się nie jasno, na pewno mam wiele braków i nie jestem dobrze wykształconym, wszechstronnym programistą, a raczej (w miarę skutecznym) klepaczem :).
Posłużę się praktycznym przykładem:
- mamy spory monolit z webapi, core'em, może nawet frontendem (to akurat mało istotne),
- jednocześnie chcemy, by równolegle nasz monolit realizował zadania w tle - robił zapytanie na bazie i np. wysyłał powiadomienia mailowe odpowiednim osobom, które zwróciło zapytanie,
- jednocześnie chcemy, by można było manualnie odpalić jakieś zadanie z linii poleceń, np. import rekordów z innego systemu. Chcemy mieć też możliwość dodać takie zadanie do crona.
No i na przykład w Symfony (PHP) tworzy się na to tak zwane (to tylko nazwa, wszystko sprowadza się do procesu) Commandy, które opierają się o pewną konwencję. Dla powyższego przykładu stworzymy:
pkt. 2: bin/console alerts:bestbefore:send
pkt. 3: bin/console integrations:sap:import --from="2021-04-01"
oba polecenia możemy dodać do crona. Jak widać - wrapperem jest w tym przypadku binarka bin/console
, która ładuje komendy i ich definicje.
I teraz ciekaw jestem, jak to realizujecie w ASP .Net - interesujący sposób podał @maszrum, na pewno to zgłębię. Pomysłów mam kilka:
- osoba binarka jako Console Application
- background
task service, o ile nie potrzebuje parametrów
- na wesoło: endpointy w API, które uruchamiają określone akcje (do crona można podpiąć skrypt, który robi request pod ten endpoint)
Więcej pomysłów nie mam. Przeszedłem przez kilka kursów, ale żaden nie porusza tematów na tym poziomie. Myślę, że to bardzo standardowy problem i powinno być już do niego dość popularne, niejako "standardowe" podejście.