ホームページ ウェブフロントエンド jsチュートリアル NodeJs でスケジュールされたタスクを実装する方法 (詳細なチュートリアル)

NodeJs でスケジュールされたタスクを実装する方法 (詳細なチュートリアル)

Jun 22, 2018 pm 05:02 PM
node スケジュールされたタスク

この記事では、NodeJs でスケジュールされたタスクを実装するためのサンプル コードを主に紹介します。編集者が非常に優れていると考えたので、参考として共有します。エディターをフォローして見てみましょう

プロジェクト内に毎日0時に実行される関数がありますが、当初はsetIntervalを使用して実装したかったのですが、このような需要は今後も続くと感じています。将来的には、自分で作成するのはあまり拡張性が高くないかもしれません。

検索した結果、node-schedule パッケージを見つけました。

次に使用方法を記録します

node-schedule は、新しいスケジュールジョブオブジェクトを作成することで常に特定のメソッドを実行します。

時間の値は次の表に示されています

*  *  *  *  *  *
┬  ┬  ┬  ┬  ┬  ┬
│  │  │  │  │  |
│  │  │  │  │  └ [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)
ログイン後にコピー

node-scheduleを使用して、指定された時間にメソッドを実行します

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

var j = schedule.scheduleJob(date, function(){
 console.log('现在时间:',new Date());
});
ログイン後にコピー

2017年12月16日の16:43:00に、現在の時刻を出力します

指定された時間間隔でメソッドを実行します

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 は、秒、分、時、日付、曜日、月、年などの値の設定をサポートします

同様に:

1 秒あたりの実行数は、rule.second =[0,1,2,3... 59] です。
毎分0秒に実行はrule.second =0
毎時30分に実行はrule.minut=30;rule.秒=0;
毎日0時に実行はrule.hour=0;rule .分 =0 ;ルール.秒 =0;
....
毎月 1 日の 10 時は、ルール.日付 =1;ルール.時間 =10;ルール.分 =0;ルール.秒 = 0;
1 毎週、3 と 5 の 0 時と 12 時は、rule.dayOfWeek =[1,3,5];rule.hour =[0,12];rule. minutes =0;rule .秒 =0;
....

1: 時間を決定します

例: 2014年2月14日、15:40実行

  var schedule = require("node-schedule");

  var date = new Date(2014,2,14,15,40,0);

  var j = schedule.scheduleJob(date, function(){

    console.log("执行任务");

  });
ログイン後にコピー

タスクをキャンセル

 j.cancel();
ログイン後にコピー

2: 一定時間ごとに時

例: 毎時40分に実行

  var rule = new schedule.RecurrenceRule();

  rule.minute = 40;

  var j = schedule.scheduleJob(rule, function(){

    console.log("执行任务");

  });
ログイン後にコピー

3: 特定の曜日の特定の時刻に実行

例: 月曜から日曜の20:00に実行

  var rule = new schedule.RecurrenceRule();

  rule.dayOfWeek = [0, new schedule.Range(1, 6)];

  rule.hour = 20;

  rule.minute = 0;

  var j = schedule.scheduleJob(rule, function(){

    console.log("执行任务");

  });
ログイン後にコピー

4: 毎時実行2番目

  var rule = new schedule.RecurrenceRule();

  var times = [];

  for(var i=1; i<60; i++){

    times.push(i);

  }

  rule.second = times;

  var c=0;
  var j = schedule.scheduleJob(rule, function(){
      c++;
     console.log(c);
  });
ログイン後にコピー

上記は皆さんのためにまとめたものです。将来皆さんのお役に立てれば幸いです。

関連記事:

WeChatアプレットでビデオコンポーネントを使用してビデオを再生する方法

WeChatアプレットでオーディオコンポーネントを使用する方法

vueでaxiosセカンダリカプセル化を実装する方法

使い方 上下スクロールアナウンスをjsで実装する方法

以上がNodeJs でスケジュールされたタスクを実装する方法 (詳細なチュートリアル)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

crontab のスケジュールされたタスクが実行されない理由をご存知ですか? crontab のスケジュールされたタスクが実行されない理由をご存知ですか? Mar 09, 2024 am 09:49 AM

crontab のスケジュールされたタスクが実行されない理由をご存知ですか?

Express を使用してノード プロジェクトでファイルのアップロードを処理する方法 Express を使用してノード プロジェクトでファイルのアップロードを処理する方法 Mar 28, 2023 pm 07:28 PM

Express を使用してノード プロジェクトでファイルのアップロードを処理する方法

ThinkPHP6 スケジュールされたタスクのスケジュール設定: スケジュールされたタスクの実行 ThinkPHP6 スケジュールされたタスクのスケジュール設定: スケジュールされたタスクの実行 Aug 12, 2023 pm 03:28 PM

ThinkPHP6 スケジュールされたタスクのスケジュール設定: スケジュールされたタスクの実行

Python は、ヘッドレス ブラウザー コレクション アプリケーションの自動ページ更新とスケジュールされたタスク関数分析を実装します。 Python は、ヘッドレス ブラウザー コレクション アプリケーションの自動ページ更新とスケジュールされたタスク関数分析を実装します。 Aug 08, 2023 am 08:13 AM

Python は、ヘッドレス ブラウザー コレクション アプリケーションの自動ページ更新とスケジュールされたタスク関数分析を実装します。

Nodeのプロセス管理ツール「pm2」を徹底分析 Nodeのプロセス管理ツール「pm2」を徹底分析 Apr 03, 2023 pm 06:02 PM

Nodeのプロセス管理ツール「pm2」を徹底分析

PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は? Mar 05, 2025 pm 05:57 PM

PIノードティーチング:PIノードとは何ですか? PIノードをインストールしてセットアップする方法は?

PHP を使用して Web ページのスケジュールされた更新機能を開発する方法 PHP を使用して Web ページのスケジュールされた更新機能を開発する方法 Aug 17, 2023 pm 04:25 PM

PHP を使用して Web ページのスケジュールされた更新機能を開発する方法

FastAPI でスケジュールされたタスクを使用してバックグラウンド作業を実行する方法 FastAPI でスケジュールされたタスクを使用してバックグラウンド作業を実行する方法 Jul 28, 2023 pm 02:22 PM

FastAPI でスケジュールされたタスクを使用してバックグラウンド作業を実行する方法

See all articles