簡體   English   中英

僅在一天的特定時間以設置的間隔運行功能

[英]Run function at set interval only at certain time of the day

我目前正在全天候定期運行一個函數。

setInterval( function(){ do_this(); } , 1000*60);

不幸的是,這並不是我想要的。 我希望此功能僅在從上午0900hrs到1800hrs的固定時間間隔運行。 該功能不應在這些時間之外運行。 如何在node.js中完成? 是否有方便使用的模塊或功能?

您只需檢查當前時間是否在期望的時間范圍內,然后使用它來決定是否執行您的功能。

setInterval( function(){ 
    var hour = new Date().getHours();
    if (hour >= 9 && hour < 18) {
        do_this(); 
    }
} , 1000*60);

這將在9:00和18:00之間的每分鍾運行一次功能。

您正在使用任何特定的框架嗎?

如果我們像這樣抽象,那么您很可能想要使用諸如cronjob之類的東西。 有一個用於此的模塊: https : //github.com/ncb000gt/node-cron

您想要的模式:

00 00 9-18 * * * -每小時將在9-18之間的0時0分運行。

檢查do_this函數中的當前小時。

function do_this(){
    var now = new Date();
    var currentHour = now.getHours();
    if(currentHour < 9 && currentHour > 18) return;
    //your code
}

setInterval( function(){ do_this(); } , 1000*60);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM