Node.js Cron Job – automatsko izvršavanje zakazanih zadataka

Node.js Cron Job – automatsko izvršavanje zakazanih zadataka

Do sada sam objavio nekoliko članaka korištenju NodeJS API-ja i svaki od njih ima istu poveznicu, a to je činjenica da se izvršavaju isključivo kada ih pozovem. U većini slučajeva to tako treba biti, ali postoje i slučajevi u kojima želim da se određeni zadatak izvrši bez da ga ručno moram pokrenuti pozivajući neki API endpoint. U tome će mi pomoći Cron Job.

Postavljanje projekta

Kreiram mapu naziva ExpressNodeCron i unutar nje pokrećem naredbu:

Odmah nakon toga instaliram Express.js i Node Cron pakete:

Sada u mapi projekta mogu vidjeti datoteku package.json koja je osnova ovog projekta.

Kreiranje API-ja

Unutar datoteke index.js koju sam upravo kreirao kopiram sljedeći sadržaj:

API odmah testiram na putanji http://localhost:8080/api/

ExpressJS API

Cron Job funkcionalnost

Sada pratim dostupnu dokumentaciju na adresi https://www.npmjs.com/package/node-cron

Na sljedećem primjeru nalazi se osnova cron job funkcionalnosti.

Na liniji 1 nalazi se "* * * * *" što označava odabrani interval u kojemu će se određeni zadatak izvršiti.

Na liniji 2 nalazi se zadatak koji će se izvršiti u zadanom intervalu.

Node.js Cron Job – automatsko izvršavanje zakazanih zadataka

Osim ranije spomenutog intervala moguće su i sljedeće kombinacije:

– više vrijednosti odvojenih zarezom

– korištenje raspona vrijednosti

– izvršavanje u koracima

– korištenje naziva mjeseca i dana umjesto brojeva (moraju biti na engleskom jeziku)

Svi ranije navedeni zadaci pokreću se prilikom startanja NodeJS servera, ali postoje još i dodatne metode pomoću kojih je moguće u određenom trenutku pokrenuti neki Cron Job, stopirati ga ili skroz ugasiti.

Start task.start();

Stop task.stop();

Jednom stopirati zadatak moguće je ponovno pokrenuti.

Primjer:

Pozivanjem putanje http://localhost:8080/api/stopiraj zaustavljam Cron Job.

Destroy task.destroy();

Jednom prekinuti zadatak nije moguće ponovno pokrenuti.

Objavio

Tomislav Stanković

Web Developer - JavaScript, TypeScript, Angular, Ionic Framework, ExpressJS

Odgovori

Vaša adresa e-pošte neće biti objavljena. Obavezna polja su označena sa *