node中的定時任務

来源:https://www.cnblogs.com/czq-0214/archive/2017/12/26/8120512.html
-Advertisement-
Play Games

node-schedule每次都是通過新建一個scheduleJob對象來執行具體方法。 時間數值按下表表示 指定時間有兩種方式1 字元串指定 *之間一定要加空格,否則不執行 每到秒數為4的倍數時執行 在秒位*後加/4 和後面的*之間要有空格schedule.scheduleJob('*/4 * * ...


node-schedule每次都是通過新建一個scheduleJob對象來執行具體方法。

時間數值按下表表示

*      *     *     *     *    *
┬    ┬    ┬    ┬    ┬    ┬
│    │    │    │    │    |
│    │    │    │    │    └ [dayOfWeek]day of week (0 - 7) (0 or 7 is Sun)
│    │    │    │    └─── [month]month (1 - 12)
│    │    │    └────── [date]day of month (1 - 31)
│    │    └───────── [hour]hour (0 - 23)
│    └──────────── [minute]minute (0 - 59)
└─────────────── [second]second (0 - 59, OPTIONAL)

指定時間有兩種方式
1 字元串指定

*之間一定要加空格,否則不執行

每到秒數為4的倍數時執行

在秒位*後加/4  和後面的*之間要有空格
schedule.scheduleJob('*/4 * * * * *',function (){

dosomething

});

每到秒數為4時執行

在秒位*後加4 ,和後面的*之間要有空格

schedule.scheduleJob('*4 * * * * *',function (){

dosomething

});

'4 * * * *'每到分鐘數為4時執行

'*/4 * * * *'每到分鐘數為4的倍數時執行

2 時間對象指定

使用node-schedule在指定時間執行方法

var schedule = require('node-schedule');
var date = new Date(2015, 11, 16, 16, 43, 0);

var j = schedule.scheduleJob(date, function(){
  console.log('現在時間:',new Date());
});

在2015年12月16日16點43分0秒,列印當時時間

指定時間間隔執行方法

var rule = new schedule.RecurrenceRule();
rule.second = 10;
var j = schedule.scheduleJob(rule, function(){
  console.log('現在時間:',new Date());
});

這是每當秒數為10時列印時間。如果想每隔10秒執行,設置 rule.second =[0,10,20,30,40,50]即可。
rule支持設置的值有second,minute,hour,date,dayOfWeek,month,year
同理:
每秒執行就是rule.second =[0,1,2,3......59]
每分鐘0秒執行就是rule.second =0
每小時30分執行就是rule.minute =30;rule.second =0;
每天0點執行就是rule.hour =0;rule.minute =0;rule.second =0;
....
每月1號的10點就是rule.date =1;rule.hour =10;rule.minute =0;rule.second =0;
每周1,3,5的0點和12點就是rule.dayOfWeek =[1,3,5];rule.hour =[0,12];rule.minute =0;rule.second =0;

var schedule = require('node-schedule');
var date = new Date().toLocaleTimeString();
var rule = new schedule.RecurrenceRule();

rule.date =26;
rule.hour =23;
rule.minute =6;
rule.second =30;
var j = schedule.scheduleJob(rule, function(){
console.log('現在時間:',date);
});

輸出結果
E:\node>node test.js
現在時間: 23:06:22


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 同為 設計模式的 可以理解為對new關鍵字的代替。 本著重覆三次即重構的原則,如果一個對象在不同的地方被new了兩次以上,那就可以考慮使用它。那我們為什麼要用簡單工廠模式代替new呢?就像我們使用Getter Setter代替直接讀寫欄位一樣,說白了就是加上一個間接層,以緩衝處理流程的變化(比如獲取 ...
  • 寫在前面: 文件上傳方式很多的,對於大文件的上傳,在本次項目中也有涉及,主要是用了分片斷點上傳大文件。所以就去瞭解了一下WebUploader,先從簡單的上傳文件開始吧~ 在代碼中寫註釋,這樣看的比較好點,那就直接上代碼來看瞭解實現的過程吧。 前臺jsp頁面: 後臺action: struts.xm ...
  • ##補充:列表生成器 1 #兩個理解例子 2 a=[x**2 for x in range(10)] #取x,然後執行x**2,在存放到列表裡面 3 print(a) #[0,1,4,9,16,25,36,49,64,81] 4 5 def f(n): 6 return n**2 7 a=[f(x) ...
  • 1 package demo; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.PreparedStatement; 6 import java.sql.SQLException; ... ...
  • 反射 一.獲得Class文件對象的三種方式(返回值都是Class類的對象) 1.通過類名調用class()獲得。 格式:類名.class(); 2.通過對象調用getClass()方法獲得; 格式:對象名.getClass(); 3.通過Class類的靜態方法forName()獲得 格式:Class ...
  • c3p0-0.9.2.1 jar包和mchange-commons-java-0.2.3.4 jar 包 下載地址: https://pan.baidu.com/s/1jHDiR7g 密碼 tyek ...
  • 環境:python3.6 目的:根據列表 中的字元串導入對應模塊 僅筆記,並知道有什麼實際用處 ...
  • ##閉包 :內部函數,在外部調用不在他函數範圍的變數 def outer(): x=10 def inner(): print(x) return inner #outer()() f=outer() f() 這裡inner就是一個閉包,閉包=內部函數+環境,這裡環境是x=10。閉包是為瞭解釋調用不 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...