forked from Mzem/paas-todo-api
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathworker.js
30 lines (26 loc) · 926 Bytes
/
worker.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
require("dotenv").config()
const Queue = require("bull")
const { Sequelize } = require("sequelize")
const sequelize = new Sequelize(process.env.DATABASE_URL)
const REDIS_URL = process.env.REDIS_URL
let workQueue = new Queue("queueEcheanceTodos", REDIS_URL)
workQueue.process(async (job) => {
console.log(
`Exécution du job de mise à jour du statut du ToDo ${job.data.idTodo} qui arrive à écheance le ${job.data.dateEcheance}`
)
try {
// Il manque quelque chose ici... A vous de l'ajouter !
// Indice : vous aurez besoin de await sequelize.query(...)
const [todos] = await sequelize.query(
`SELECT * FROM todos WHERE id = ${job.data.idTodo}`
)
const todo = todos[0]
if (todo.date_echeance < new Date()) {
await sequelize.query(
`UPDATE todos SET status = "EN_RETARD" WHERE id = ${job.data.idTodo}`
)
}
} catch (error) {
console.error(error)
}
})