Planowanie zadań cron w monday code
Harmonogram zadań monday code pozwala planować zadania cron, które uruchamiają się automatycznie według ustalonego harmonogramu, np. co tydzień o 10:00. Aby zacząć, utwórz endpoint w backendzie i skonfiguruj zadanie. Harmonogram zajmie się jego uruchomieniem. To dobre rozwiązanie do cyklicznych automatyzacji, takich jak nocna synchronizacja danych lub generowanie raportów w każdy piątek o 17:00.
Pojęcia
Harmonogram zadań monday code pozwala tworzyć aplikacje z cyklicznymi, zaplanowanymi działaniami lub planować zadania wewnętrzne, np. generowanie raportu.
Każda aplikacja może mieć maksymalnie pięć zaplanowanych zadań w każdym regionie:
- Aplikacje działające w jednym regionie: maksymalnie 5 zadań łącznie
- Aplikacje działające w wielu regionach (US, EU, AU): maksymalnie 15 zadań łącznie (po 5 w każdym regionie, z wyjątkiem IL)
Harmonogram nie jest obsługiwany w nowym regionie IL.
Harmonogram działa w określonym regionie. Podczas tworzenia nowego zadania musisz wskazać region, w którym ma ono być uruchamiane. Zaplanowane zadania nie są automatycznie kopiowane między regionami. W razie potrzeby skonfiguruj każde zadanie osobno w każdym regionie.
Wymagania
- monday apps CLI w wersji 4.7.0
Implementacja
Jak utworzyć zaplanowane zadanie
- Zaimplementuj logikę zadania w swoim kodzie.
- Utwórz endpoint z prefiksem
/mndy-cronjob, który uruchomi tę logikę. Powinna to być trasa POST, ponieważ właśnie tej metody HTTP używa mechanizm uruchamiania zadań cron. - Wdróż aplikację.
- Utwórz zaplanowane zadanie za pomocą polecenia CLI
mapps scheduler:create. Podczas tworzenia endpointu zaplanowanego zadania upewnij się, że w kodzie trasa ma postać/mndy-cronjob/my-endpoint. W CLI wystarczy jednak podaćmy-endpoint.
$ mapps scheduler:create -a APP_ID -s "0 * * * *" -e "my-endpoint" -n "My-scheduled-job" -d "This job will execute hourly." -z us
Jak przetestować zaplanowane zadanie
Opcja 1: Tymczasowy publiczny endpoint
- Dodaj do wdrożenia zwykły publiczny endpoint. Powinien naśladować wewnętrzną logikę zadania, które chcesz przetestować. Zabezpiecz go w jakiś sposób, aby tylko Ty móc go wywołać i przetestować logikę zaplanowanego zadania.
- Gdy endpoint będzie działać zgodnie z oczekiwaniami, zmień go w zaplanowane zadanie:
- Dodaj prefiks
/mndy-cronjob. - Wdróż go do najnowszej wersji roboczej.
- Opublikuj zaktualizowaną wersję.
Opcja 2: Wdrożenie z wymuszonym wysłaniem kodu do ręcznego testowania
- Dodaj do kodu nowy endpoint zaplanowanego zadania. Aby uniknąć niezamierzonych uruchomień, ustaw harmonogram na przyszłą datę, np. 31 grudnia 2050 r.
- Wymuś wysłanie kodu do istniejącej, opublikowanej wersji aplikacji. Dzięki temu nowy endpoint zaplanowanego zadania będzie dostępny do automatycznego wywołania.
- Użyj polecenia
mapps scheduler:run, aby ręcznie uruchomić zadanie. - Gdy zadanie będzie działać zgodnie z oczekiwaniami, uruchom
mapps scheduler:update, aby ustawić właściwy harmonogram.
Jak zarządzać zaplanowanymi zadaniami
| Zadanie | Polecenie |
|---|---|
| Utwórz | mapps scheduler:create |
| Wyświetl listę | mapps scheduler:list |
| Zaktualizuj | mapps scheduler:update |
| Usuń | mapps scheduler:delete |
| Uruchom ręcznie | mapps scheduler:run |
Monitorowanie
Wywołania zaplanowanych zadań są monitorowane tak samo jak wywołania innych publicznych endpointów monday code. Generują logi HTTP i metryki żądań, dostępne w sekcjach Logging i Monitoring w Developer Center. Logi zapisywane przez logikę zadania pojawią się jako logi konsoli.
Rozwiązywanie problemów
Błędy
Zaplanowane zadania można tworzyć w dowolnej wersji aplikacji, ale można je uruchamiać tylko w opublikowanej wersji. Jeśli utworzysz zadanie, ale nie masz jeszcze opublikowanej wersji z dostępnym endpointem, próby jego uruchomienia spowodują błędy 404 widoczne w sekcji Monitoring. Zadanie zacznie się uruchamiać dopiero po opublikowaniu wersji.