Zadania cykliczne i harmonogramy

Tygodniowe plany zajęć z długopisem

Czynności wykonywane co tydzień albo co miesiąc mają to do siebie, że wypadają z rytmu przy pierwszym urlopie. Zadanie uruchamiane automatycznie tego nie robi.

Co warto zaplanować cyklicznie

  • kopie zapasowe i ich testy,
  • porządkowanie dzienników i plików tymczasowych,
  • przegląd kont i uprawnień,
  • zestawienia dla zespołu,
  • sprawdzenie terminów certyfikatów i umów,
  • optymalizację i archiwizację baz danych.

Wspólna cecha tych czynności: nikt nie zauważy, że nie zostały wykonane, dopóki nie będzie za późno. Dlatego akurat one nadają się do automatu lepiej niż zadania, których brak widać od razu.

Częstotliwość dobierana do skutku

Punktem wyjścia nie jest wygoda harmonogramu, tylko koszt pominięcia. Jeśli dzień utraconych danych oznacza dzień pracy do odtworzenia, kopia raz na dobę jest za rzadka. Jeśli przegląd uprawnień raz na kwartał wychwytuje wszystko, co się zmieniło, comiesięczny tylko zabiera czas. Zadanie ustawione zbyt często przestaje być czytane równie skutecznie jak takie, którego nie ma.

Potwierdzenie wykonania

Zadanie, które przestało się uruchamiać, nie zgłasza tego samo. Cisza jest wtedy myląca — brak błędu wygląda jak sukces. Konieczne jest potwierdzanie wykonania, nie tylko zgłaszanie błędów.

Mechanizm jest prosty: zadanie po zakończeniu odhacza się w jednym miejscu, a osobna kontrola sprawdza, czy odhaczenie przyszło w spodziewanym oknie. Taka kontrola należy do monitoringu i musi działać na innej maszynie niż samo zadanie. Zadanie pilnujące samo siebie milknie razem z serwerem.

Zadanie, które trwa dłużej niż przerwa

Uruchomione co godzinę, a trwające półtorej, zaczyna nakładać się na siebie. Zabezpieczenie przed równoległym uruchomieniem jest konieczne, inaczej obciążenie rośnie lawinowo.

Blokada powinna sama wygasać. Zadanie przerwane restartem serwera zostawia po sobie znacznik, który przy prostej implementacji zablokuje wszystkie kolejne uruchomienia — i awaria zamienia się w cichy przestój trwający tygodniami.

Kolejność zależności

Kopia przed czyszczeniem, nie odwrotnie. Zadania powiązane muszą mieć ustaloną kolejność, a nie zbliżone godziny uruchomienia.

Ustawienie ich co piętnaście minut po sobie działa do dnia, w którym pierwsze potrwa dłużej. Właściwe rozwiązanie to uruchamianie kolejnego po potwierdzeniu poprzedniego. Dotyczy to zwłaszcza kopii zapasowych, po których często idzie czyszczenie starszych plików — odwrócona kolejność potrafi usunąć jedyny sprawny egzemplarz.

Ewidencja zadań

Po latach nikt nie pamięta, co się uruchamia i po co. Spis zadań z opisem celu i osobą odpowiedzialną chroni przed skryptami, których nikt nie rozumie, a boi się wyłączyć.

W spisie powinno się znaleźć: co zadanie robi, na jakim koncie działa, czego dotyka, co się stanie, gdy nie zadziała, i kto ma to zauważyć. Osobno warto odnotować konta techniczne używane przez zadania — ich hasła i klucze też wygasają, a to jedna z częstszych przyczyn cichego zatrzymania automatyzacji.

Gdzie automat nie pomoże

Zadanie cykliczne wykona czynność, ale nie podejmie decyzji. Przegląd uprawnień da się przygotować automatycznie, jednak ktoś musi na zestawienie spojrzeć i odpowiedzieć. Harmonogram, który generuje raporty czytane przez nikogo, tylko sprawia wrażenie porządku.