Skip to content

Commit 995a80b

Browse files
authored
New Node-Job-Scheduler (thombergs#216)
1 parent 52ce0d9 commit 995a80b

File tree

6 files changed

+152
-0
lines changed

6 files changed

+152
-0
lines changed

nodejs/job-scheduler/demo.csv

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
2022-09-01T23:52:45.356Z, 6.6314544677734375, 11%
2+
2022-09-01T23:53:00.489Z, 6.702445983886719, 13%
3+
2022-09-01T23:53:15.609Z, 6.74859619140625, 14%
4+
2022-09-01T23:53:30.727Z, 6.795112609863281, 11%
5+
2022-09-01T23:53:45.817Z, 6.841529846191406, 11%
6+
2022-09-01T23:54:00.899Z, 6.8905181884765625, 11%

nodejs/job-scheduler/example1.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Scheduling a simple task with node cron.
2+
3+
const cron = require("node-cron");
4+
const express = require("express");
5+
6+
const app = express();
7+
8+
cron.schedule("*/15 * * * * *", function () {
9+
console.log("---------------------");
10+
console.log("running a task every 10 second");
11+
//replace with any task
12+
});
13+
14+
app.listen(3000);
15+
16+
/*
17+
* Run the script: `node example1.js`
18+
* To log on application
19+
* at scheduled time
20+
*/

nodejs/job-scheduler/example2.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
const express = require("express");
2+
const cron = require("node-cron");
3+
const nodemailer = require("nodemailer");
4+
app = express();
5+
6+
//send email after 1 minute
7+
cron.schedule("1 * * * *", function () {
8+
mailService();
9+
});
10+
11+
function mailService() {
12+
let mailTransporter = nodemailer.createTransport({
13+
service: "gmail",
14+
auth: {
15+
user: "<your-email>@gmail.com",
16+
// use generated app password for gmail
17+
pass: "***********",
18+
},
19+
});
20+
21+
// setting credentials
22+
let mailDetails = {
23+
from: "<your-email>@gmail.com",
24+
to: "<user-email>@gmail.com",
25+
subject: "Test Mail using Cron Job",
26+
text: "Node.js Cron Job Email Demo Test from Reflectoring Blog",
27+
};
28+
29+
// sending email
30+
mailTransporter.sendMail(mailDetails, function (err, data) {
31+
if (err) {
32+
console.log("error occurred", err.message);
33+
} else {
34+
console.log("---------------------");
35+
console.log("email sent successfully");
36+
}
37+
});
38+
}
39+
40+
app.listen(3000, () => {
41+
console.log("application listening.....");
42+
});
43+
44+
/*
45+
* Run the script: `node example2.js`
46+
* To send E-mail
47+
* at scheduled time
48+
*/

nodejs/job-scheduler/example3.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// Writing to a log file
2+
3+
// Importing required packages
4+
const process = require("process");
5+
const fs = require("fs");
6+
const os = require("os");
7+
const cron = require("node-cron");
8+
const express = require("express");
9+
10+
app = express();
11+
12+
// setting a cron job for every 15 seconds
13+
cron.schedule("*/15 * * * * *", function () {
14+
let heap = process.memoryUsage().heapUsed / 1024 / 1024;
15+
let date = new Date().toISOString();
16+
const freeMemory = Math.round((os.freemem() * 100) / os.totalmem()) + "%";
17+
18+
// date | heap used | free memory
19+
let csv = `${date}, ${heap}, ${freeMemory}\n`;
20+
21+
// storing log In .csv file
22+
fs.appendFile("demo.csv", csv, function (err) {
23+
if (err) throw err;
24+
console.log("server details logged!");
25+
});
26+
});
27+
28+
app.listen(3000, () => {
29+
console.log("application listening.....");
30+
});
31+
32+
/*
33+
* Run the script: `node example3.js`
34+
* To generate logstatus.txt file
35+
* at scheduled time
36+
*/

nodejs/job-scheduler/example4.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
// Deleting / Refreshing A log file.
2+
const express = require("express");
3+
const cron = require("node-cron");
4+
const fs = require("fs");
5+
6+
app = express();
7+
8+
// remove the demo.csv file every twenty-first day of the month.
9+
cron.schedule("0 0 25 * *", function () {
10+
console.log("---------------------");
11+
console.log("deleting logged status");
12+
fs.unlink("./demo.csv", err => {
13+
if (err) throw err;
14+
console.log("deleted successfully");
15+
});
16+
});
17+
18+
app.listen(3000, () => {
19+
console.log("application listening.....");
20+
});
21+
22+
/*
23+
* Run the script: `node example4.js`
24+
* To delete demo.csv file
25+
* at scheduled time
26+
*/

nodejs/job-scheduler/package.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"name": "new-folder-(3)",
3+
"version": "1.0.0",
4+
"description": "",
5+
"main": "index.js",
6+
"scripts": {
7+
"start": "nodemon index.js"
8+
},
9+
"keywords": [],
10+
"author": "",
11+
"license": "ISC",
12+
"dependencies": {
13+
"node-cron": "^3.0.2",
14+
"node-mailer": "^0.1.1"
15+
}
16+
}

0 commit comments

Comments
 (0)