Mam tabela zadań w mojej db. Chcę odczytać dane z tej tabeli i uruchomić zadania. Który z nich jest lepszy, czy mieć go jako usługę Windows lub działającą aplikację konsolową. Serwer, na którym zostanie uruchomiony, nie zostanie zamknięty. Nie można wyłączyć usługi:Czy dobrze jest mieć usługę Windows lub aplikację konsoli?
Odpowiedz
Najprawdopodobniej chcesz skorzystać z usługi Windows.
Korzyści:
- Można kontrolować użytkownika (oraz prawa związane z tym kontem użytkownika), który rozpoczyna proces
- Automatycznie rozpoczął proces oznacza pulpit trzeba być na nie zalogowany użytkownik, za usługę uruchomić
- Polityka w przypadku niepowodzenia można zdefiniować (spróbuj zrestartować n razy uruchomić specjalny program, jeśli nie powiedzie się)
- zależność można zdefiniować (jeśli są uzależnione od innych sevices)
- Można owinąć skrypt w niewidzialnym oknie
- Można łatwo start/stop/restart skrypt (
net start <scriptname>
)
Cytowane tutaj:What is the benefit of developing the application as a windows service?
Usługa systemu Windows, ponieważ nie wymaga zalogowanego użytkownika.
Powiedziałbym; Usługi Windows.
W takim przypadku (między innymi) nie potrzebujesz użytkownika do zalogowania, możesz skonfigurować go w taki sposób, aby automatycznie się ponownie uruchamiał, jeśli z jakiegoś powodu zostanie wyłączony, a Ty (możesz) mieć rozległe prawa system.
Obsługa na ogół Windows. Aplikacja Konsola będzie musiała zostać zrestartowana, jeśli serwer uruchomi się ponownie, a usługa Windows uruchomi się automatycznie.
Uruchomiona aplikacja konsolowa nie jest opcją, jak stwierdzili inni.
Jeśli chcesz, aby zadanie było uruchamiane co x minut, najprostszym rozwiązaniem jest zaplanowane zadanie przy użyciu aplikacji konsolowej.
Usługa okien ma swoje zalety, ale jest nieco bardziej skomplikowana do wdrożenia i wdrożenia. Jeśli jednak aplikacja musi być zawsze włączona (np. Trzeba reagować na zewnętrzne wyzwalacze, słuchać kolejki wiadomości, ...), jedyną opcją jest usługa Windows. Jak mówili inni, infrastruktura usług zapewnia również więcej możliwości zarządzania, wbudowaną integrację z opcji dziennika zdarzeń, restart i failover ...
Dzięki Jeroenh !!Tak dokładnie to jest mój wymóg, powinienem być w stanie uruchomić zadanie powiedz co x min. .. Czy możesz powiedzieć, jak skomplikowane jest to z usługami? – Juni
http://www.pedautreppe.com/post/How-to-create-(and-deploy)-a-windows-service-in-C-.aspx – jeroenh
Ale jak powiedziałem w mojej odpowiedzi, jeśli po prostu potrzebujesz zadanie uruchamiane co X minut, zaplanowane zadanie jest znacznie łatwiejsze i ma wiele takich samych zalet (może działać bez nadzoru, łatwe wdrażanie, integracja z dziennikiem zdarzeń itp.) – jeroenh
Należy spojrzeć na: https://github.com/thedavejay/Self-Installing-Windows-Service
To pozwala na debugowanie jako aplikację konsolową, a następnie zainstaluj ją jako usługę systemu Windows.
- 1. Jak uruchomić projekt konsoli ServiceStack jako usługę systemu Windows?
- 2. Czy dobrze jest mieć klasę "Utils" w swoim projekcie oprogramowania?
- 3. Jak zbudować aplikację konsoli VB6
- 4. Czy jest dobrze skręcony?
- 5. Task Parallel Library Kod zamarza w Windows Forms Application - Działa dobrze jako aplikacji konsoli systemu Windows
- 6. Czy można fałszywe api konsoli systemu Windows?
- 7. Jak uruchomić aplikację konsoli .NET w tle
- 8. Jak stworzyć usługę Windows Seler?
- 9. Jak zrobić aplikację konsoli C# dla systemu Windows, która "respektuje" poprzednią zawartość konsoli?
- 10. Czy dobrze jest z plikami binarnymi?
- 11. Jak uruchomić aplikację konsoli .NET?
- 12. Czy * p ++ + = 2 jest dobrze zdefiniowane?
- 13. Czy dobrze jest mieć cukier składniowy do funkcji składu w Pythonie?
- 14. Jak programowo zatrzymać usługę Windows
- 15. Jak prawidłowo zatrzymać wielowątkową usługę Windows .NET?
- 16. Konwersja programu konsoli Java na aplikację Webapp
- 17. Formularz Windows z konsoli
- 18. Czy można napisać usługę Windows za pomocą Pythona?
- 19. C#/.NET: Wykrywanie, czy program jest uruchamiany jako usługa lub aplikacja konsoli.
- 20. Bindować usługę FragmentActivity lub Fragment?
- 21. Czy ten kod jest dobrze zdefiniowany?
- 22. Czy dobrze jest ukryć shared_ptr za typedef?
- 23. Czy przepełnienie intN_t jest dobrze zdefiniowane?
- 24. Czy dobrze jest porównać obiekty różnych typów?
- 25. Czy lepiej jest mieć jedną instancję klasy lub po prostu mieć kilka statycznych metod?
- 26. Przekierowanie stdout + stderr na usługę C# Windows
- 27. Czy możliwe jest automatyzowanie konsoli Firebug?
- 28. Uruchomić usługę Windows i uruchomić cmd
- 29. Jak mogę wyświetlić moją usługę systemu Windows na pasku zadań?
- 30. Jak wykonać "usługę" uruchamiając moją aplikację Node.js na serwerze Ubuntu
Doskonała odpowiedź. Dodam, że w przypadku scenariuszy zaliczek można hostować małą aplikację internetową bezpośrednio w ramach usługi. Umożliwi to zdalną kontrolę lub monitorowanie usługi (po prostu uważaj na implikację bezpieczeństwa). Przykładem tego jest [usługa zarządzania Rabbitmq] (http://www.rabbitmq.com/management.html). Mały wbudowany serwer internetowy umożliwia aminicjatorowi zdalne monitorowanie usługi –