setTimeout 一天中的特定時間,然後停止直到下一個特定時間 (setTimeout for specific hours of day and then stop until next specific time)


問題描述

setTimeout 一天中的特定時間,然後停止直到下一個特定時間 (setTimeout for specific hours of day and then stop until next specific time)

我正在運行以下代碼,作為我想要說功能“tweeter”的更廣泛代碼的一部分。全天在 09.00、13.00、17.00 和 21.00 運行。

但是,當我運行代碼時,它會正確等待“小時”。然後它將繼續運行該函數,而不是停止並等待檢查下一個小時是否匹配。

我希望它遵循的工作流程是

  1. 運行每小時的代碼
  2. 如果小時匹配 9、13、17 或 21,則運行函數
  3. 停止運行直到下一個小時檢查
  4. 重複 1‑2

<div class="snippet" data‑lang="js" data‑hide="false" data‑console="true" data‑babel="false">


參考解法

方法 1:

you can use a cron job like this check the doucmentation

var CronJob = require('cron').CronJob;
var job = new CronJob('0 0 9,13,17,21 * * *', function() {
  tweeter();
}, null, true, 'America/Los_Angeles');
job.start();

方法 2:

Went with a tidied up solution to run every three hours instead of on specific hour. Did go with cron.schedule at the end which is working as expected:

var cron = require('node‑cron');
cron.schedule('0 0‑21/3 * * *', () => {
    tweeter();
});

(by DT7Mohammad Yaser AhmadiDT7)

參考文件

  1. setTimeout for specific hours of day and then stop until next specific time (CC BY‑SA 2.5/3.0/4.0)

#datetime #javascript #function #node.js






相關問題

NHibernate:HQL:從日期字段中刪除時間部分 (NHibernate:HQL: Remove time part from date field)

如何獲得在給定時間內發送超過 X 個數據包的 IP (How do I get IPs that sent more than X packets in less than a given time)

Памылка дадання даты пры адніманні ад 0:00 (Dateadd error when subtracting from 0:00)

查找與日曆相比缺失的日期 (Find missing date as compare to calendar)

CodeReview:java Dates diff(以天為單位) (CodeReview: java Dates diff (in day resolution))

顯示兩個給定時間之間的 15 分鐘步長 (display 15-minute steps between two given times)

如何在 C# 中獲取月份名稱? (How to get the month name in C#?)

fromtimestamp() 的反義詞是什麼? (What is the opposite of fromtimestamp()?)

構建 JavaScript 時缺少模塊 (Missing Module When Building JavaScript)

setTimeout 一天中的特定時間,然後停止直到下一個特定時間 (setTimeout for specific hours of day and then stop until next specific time)

將浮點數轉換為 datatime64[ns] (Converting float into datatime64[ns])

Python Dataframe 在連接時防止重複 (Python Dataframe prevent duplicates while concating)







留言討論