walk.on('dir', function (dir, stat) {
uploadDir.push(dir);
});
Я использую Node, и мне нужно, чтобы эта функция выполнялась каждый день в полночь, это возможно?
walk.on('dir', function (dir, stat) {
uploadDir.push(dir);
});
Я использую Node, и мне нужно, чтобы эта функция выполнялась каждый день в полночь, это возможно?
Я полагаю, пакет node -класса будет отвечать вашим потребностям. Как правило, для планирования и выполнения задач сервера требуется так называемый cron.
С node -schedule:
import schedule from 'node-schedule'
schedule.scheduleJob('0 0 * * *', () => { ... }) // run everyday at midnight
Для node-schedule
существует пакет node.
Вы можете сделать что-то вроде этого:
var j = schedule.scheduleJob({hour: 00, minute: 00}, function(){
walk.on('dir', function (dir, stat) {
uploadDir.push(dir);
});
});
Для получения дополнительной информации см. здесь
Я использую следующий код:
function resetAtMidnight() {
var now = new Date();
var night = new Date(
now.getFullYear(),
now.getMonth(),
now.getDate() + 1, // the next day, ...
0, 0, 0 // ...at 00:00:00 hours
);
var msToMidnight = night.getTime() - now.getTime();
setTimeout(function() {
reset(); // <-- This is the function being called at midnight.
resetAtMidnight(); // Then, reset again next midnight.
}, msToMidnight);
}
Я думаю, что есть законные варианты использования для запуска функции в полночь. Например, в моем случае у меня есть ежедневная статистика, отображаемая на веб-сайте. Эти статистические данные должны быть reset, если веб-сайт будет открыт в полночь.
Кроме того, выдаются кредиты этим.
Является ли это частью какого-то другого долговременного процесса? Это действительно нужно? Если бы это был я, я бы просто написал быстрый запуск script, используйте обычный старый cron, чтобы запланировать его, а затем, когда процесс завершится, завершите его.
Иногда бывает целесообразно, чтобы эти виды запланированных задач были встроены в другой долговременный процесс, который выполнял другие вещи (я сделал это сам), и в этих случаях библиотеки, упомянутые в других ответах, являются вашими лучше всего, или вы всегда можете написать цикл setTimeout()
или setInterval()
, чтобы проверить время для вас и запустить ваш процесс, когда время совпадает. Но для большинства сценариев отдельный script и отдельный процесс, инициированный cron, - это то, что вы действительно после.