2009-09-22 23 views
10

Mój zespół prowadzi debatę, która jest lepsza: usługa Windows lub zaplanowane zadania. Mamy serwer dedykowany do uruchamiania zadań i obecnie wszystkie są zaplanowanymi zadaniami. Niektóre zadania pobierają pliki, zmieniają je i umieszczają w innych katalogach w sieci. Inne zadania wyodrębniają dane z SQL, modyfikują je i wysyłają w inne miejsce. Inne pliki ftp zadań. Istnieje wiele różnorodności, ale w sumie są one dość proste.Zaplanowane zadanie lub usługa Windows

Jestem stronniczy, że każdy z nich działa jako usługa Windows zamiast zaplanowanego zadania, ponieważ o wiele łatwiej jest monitorować usługę Windows niż zaplanowane zadanie. Niektóre są diametralnie przeciwne. W końcu, nikt z nas nie ma tyle doświadczenia, aby zapewnić faktyczne porównania między tymi dwiema metodami. Szukam opinii na temat tego, co inni doświadczyli.

Odpowiedz

6

Jeśli działa nieprzerwanie - usługa Windows.

Jeśli ma być uruchamiany w różnych odstępach czasu - zaplanowane zadanie.

4

Scedulowanie zadań za pomocą funkcji wbudowanej jest całkowicie poprawnym zastosowaniem. Trzeba będzie odtworzyć pełną funkcjonalność, aby stworzyć dobrą usługę, i jeśli nie chcesz reagować na konkretne zdarzenia, nie widzę powodu, aby przenosić codzienną pracę do usługi.

Jest różna, gdy chcesz przetworzyć plik po tym, jak został opublikowany w folderze, to jest coś, dla czego utworzyłbym usługę, to znaczy używając przeglądarki plików do monitorowania folderu.

myślę jego wymyślania koła

2

Chociaż nie ma nic złego z pomocą Harmonogramu zadań, jest sama usługa. Ale mamy takie same wymagania w miejscu pracy i mamy program ogólnego przeznaczenia, który wykonuje kilka z tych zadań. Zinterpretowałem twój post, mówiąc, że chciałbyś uruchomić indywidualne usługi dla każdego zadania, rozważałbym napisanie pojedynczego, opartego na bazie danych (usługi) programu, który wykonałby wszystkie twoje zadania, i w ten sposób, po dodaniu nowego, jest po prostu obowiązek wprowadzania danych, a nie zupełnie nowy program do pisania. Jeśli ćwiczysz kontrolę zmian, różnica ta może być znacząca. Jeśli masz więcej niż kilka zadań, wysiłek może być wykonalny. Takie podejście pozwoli również stworzyć mechanizm rejestrowania najlepiej dopasowany do twoich operacji.

Jest to część naszego dokumentu WYMAGANIA dla naszego programu zadań, aby dać Ci pomysł od czego zacząć:

  1. Ten program musi być z bazy danych.

  2. To musi działać jako usługa Windows.

  3. Program musi być w stanie przetworzyć „pracy” w następujący sposób:

  4. Praca musi być w stanie sprawdzić na istnienie pliku źródłowego, i podjąć działania opiera się na istnieniu lub nie pliku źródłowego. (tzn. kontynuuj przetwarzanie, a zamiast tego informuj, że plik nie istnieje, a ignoruj ​​go, ponieważ nie ma krytycznego znaczenia, że ​​plik nie istnieje.

  5. Praca musi być w stanie skopiować plik ze źródła do miejsca docelowego lub

  6. skopiować plik ze źródła do miejsca postoju, wykonaj „przetwarzanie”, a następnie skopiować albo oryginalny plik lub wynik "przetworzenia" do docelowej lokalizacji lub skopiowanie pliku ze źródła, do miejsca przemieszczania, wykonanie "przetwarzania", a przetwarzanie jest wynikiem końcowym.

  7. źródła i przeznaczenia, które zadania może skopiować do iz mogą być rozbieżne: UNC, SFTP, FTP, itp

  8. „przetwarzania”, może być, szyfrowanie/deszyfrowanie plików, analizowania danych plik dla poprawnego formatu, podawanie pliku na komputer typu mainframe poprzez emulację terminala itp., zwykle zaimplementowane przez wywołanie parametrów linii poleceń przekazujących parametry do .exe

  9. Praca musi być w stanie sama się posprzątać, zgodnie z wymaganiami. tzn. usuwać pliki pośrednie lub oryginalne, kopiować pliki do lokalizacji archiwum itp.

  10. Program musi umożliwiać określenie sukcesu i niepowodzenia każdej fazy pracy oraz podjęcie odpowiednich działań, które polegałyby na rejestrowaniu i ewentualnie inne powiadomienie, przerwij dalsze przetwarzanie w razie awarii itd.

  11. Praca musi być skonfigurowana do aktywacji w określonych godzinach lub w określonych odstępach czasu (opcjonalnie w określonych godzinach), czyli co 15 minut od 9:00 do 5: 00.

  12. Potrzebny jest interfejs użytkownika do dodawania nowych zadań.

  13. Potrzebny jest przycisk do naciśnięcia, aby zwolnić zadanie, tak jakby zdarzenie to zostało aktywowane przez timer.

  14. Standardowy wyświetlacz programu powinien pokazywać operatorowi, co się dzieje i czy program działa prawidłowo.

Wszystko to opiera się na założeniu, że jest napisane, że piszesz własne oprogramowanie. Istnieje również kilka programów do planowania zadań dla przedsiębiorstw dostępnych na rynku. Kupowanie z półki może być lepszym rozwiązaniem dla Ciebie.

+0

Dzięki za wszystkie sugestie. Mnóstwo dobrego pomysłu. – user177213

+0

To brzmi dla mnie jak SQL Server Integration Services może dobrze pasować do wymagań, które wymieniłeś, z pewnymi niestandardowymi parametrami ScriptTask dla operacji, które nie są dostarczane z pudełka. Jeśli masz już zainstalowane .exe dla tych zadań (jak wspomniałeś), możesz ich użyć w ramach SSIS. Wdrożenie może być zarządzane przy użyciu zadań SQL Server, na żądanie lub według harmonogramu. –

+0

Oczywiście opiera się to na założeniu, że używasz już programu SQL Server - nie wiem, jakie alternatywy są dostępne od innych dostawców ... –

5

zaplanowane zadanie -

  1. Kiedy aktywność należy przeprowadzić na jakiejś stałej/zdefiniowanym harmonogramem.
  2. Zajmuje mniej pamięci i zasobów systemu operacyjnego.
  3. Niewymagana instalacja.
  4. To może mieć UI (np Wyślij wiadomość do przypominania defaulters.)

usługi systemu Windows -
  1. Gdy wymagane jest monitorowanie kontynuowane.
  2. Sprawia, że ​​system operacyjny jest zajęty, zużywając więcej.
  3. Wymagaj instalacji/deinstalacji podczas zmiany wersji.
  4. Brak interfejsu użytkownika (np.Przetwarzać pocztę, jak tylko dotrze)

używaj ich mądrze

Powiązane problemy