Я пытался выполнить вызов API в назначенное время.Я исследовал сайты и нашел этот пакет, называемый node-schedule от npmjs.Это работает, как и ожидалось, вызывая код в нужное время.У меня возникла проблема:
Предположим, у меня есть список времени, например: ["10:00","11:00","13:00"]
После запуска сервера он будет запущен в нужное время.Но что, если я хочу динамически изменить список времени?
Именно то, что я пытаюсь сделать:
- Вызов API и получение времени из базы данных
- Настройка cron-спланирование каждого из этих времен.
- Динамическое добавление нового времени в базу данных
Что я хочу: Динамическое добавление этого нового добавленного времени в cron-schedule
index.js
const express = require('express');
const schedule = require('node-schedule');
const app = express();
const port = 5000;
var date = new Date(2019, 5, 04, 14, 05, 20);// API call here
var j = schedule.scheduleJob(date, function(){
console.log('The world is going to end today.');
});
app.get('/test', (req, res) => {
var date = new Date(2019, 5, 04, 14, 11, 0); // Will call API here
var q = schedule.scheduleJob(date, function(){
console.log('Hurray!!');
});
res.send('hello there');
});
app.listen(port, () => console.log(`Example app listening on port ${port}!`));
Код, написанный выше, - это то, что у меня есть, и оно довольно испорчено.Я передаю здесь то, что при запуске файла index.js
вызывается API, и cron-schedule
запускается.Теперь, если к БД добавлены какие-то новые значения, я хочу перезапустить это.
Перезапуск index.js
- это еще один вариант, который у меня есть, но я не думаю, что это правильно.Следующий вариант, который я имею в виду, - это вызвать другую конечную точку, которая упоминается как /test
выше, что в конечном итоге снова запустит cron.
Пожалуйста, дайте мне знать некоторые предложения или какое-то решение для этого, чтобы ямогу исправить мои ошибки.