Я уверен, что об этом уже спрашивали, но я не могу найти ничего полезного, надеюсь, название имеет смысл, я новичок в javascript и ноде. Короче говоря, я создаю бота для внутренней системы обмена сообщениями (например, Slack). Мой бот является ботом-напоминанием, поэтому пользователь может ввести ключевое слово и сказать «напомнить мне о« х »через 10 минут» или «напомнить мне сделать« у »30 апреля в 9:00» et c.
В моей голове имело смысл иметь глобальную переменную времени, которая постоянно обновляется, например:
if(currentDateTime >= reminderArray[0].notificationTime){
bot.sendMessage(reminderArray[0].message);
reminderArray.shift();
}
pu sh все напоминания в глобальной очереди, где они сортируются по время напоминания, а затем запустить бота, чтобы отправить сообщение, когда глобальное время равно времени первого элемента в очереди.
Мне очень трудно понять, как получить обновленную глобальную переменную времени в режиме реального времени , Я посмотрел на задания cron, но не уверен, как запустить одновременно несколько заданий cron.
Я понятия не имею, слишком много я думаю об этом или нет, это было похоже на 3 дни, когда я стучал головой по клавиатуре, чтобы я мог оказаться в дыре, и ответ, вероятно, очень прост. В любом случае, если вы сможете пролить свет, предложить какой-либо совет или показать какие-либо примеры / инструменты, которые я могу использовать, я был бы очень благодарен.
Подождите, пока я перефразировал вопрос, я понял, что блок кода может работать, если Я положил его внутрь setInterval()
. Как то так:
setInterval(() => {
const time = moment();
if(time >= reminderArray[0].notificationTime){
bot.sendMessage(reminderArray[0].message);
reminderArray.shift();
}
},6000)