ノードクロン
node-cronモジュールは、GNU crontabに基づくnode.js用の純粋なJavaScriptの小さなタスクスケジューラです。このモジュールを使用すると、完全なcrontab構文を使用してnode.jsでタスクをスケジュールできます。
入門
npmを使用してnode-cronをインストールします。
1$ npm install --save node-cron
node-cronをインポートし、タスクをスケジュールします。
1
2
3
4
5var cron = require('node-cron');
cron.schedule('* * * * *', function(){
console.log('running a task every minute');
});
cron構文
これはcron構文のクイックリファレンスであり、node-cronでサポートされているオプションも示しています。
Allowed fields
1
2
3
4
5
6
7
8
9 # ┌────────────── second (optional)
# │ ┌──────────── minute
# │ │ ┌────────── hour
# │ │ │ ┌──────── day of month
# │ │ │ │ ┌────── month
# │ │ │ │ │ ┌──── day of week
# │ │ │ │ │ │
# │ │ │ │ │ │
# * * * * * *
Allowed values
分野 | 価値 |
---|---|
2番目 | 0-59 |
分 | 0-59 |
時間 | 0-23 |
曜日 | 1-31 |
月 | 1〜12(または名前) |
曜日 | 0〜7(または名前、0または7は日曜日) |
倍数値の使用
カンマで区切った複数の値を使用できます:
1
2
3
4
5var cron = require('node-cron');
cron.schedule('1,2,4,5 * * * *', function(){
console.log('running every minute 1, 2, 4 and 5');
});
範囲の使用
値の範囲を定義することもできます。
1
2
3
4
5var cron = require('node-cron');
cron.schedule('1-5 * * * *', function(){
console.log('running every minute to 1 from 5');
});
ステップ値の使用
ステップ値は、「/」と数字が付いた範囲の後に、範囲と組み合わせて使用できます。例:1-10/2
これはと同じ2,4,6,8,10
です。ステップはアスタリスクの後にも許可されるため、「2分ごと」と言いたい場合は、を使用するだけ*/2
です。
1
2
3
4
5var cron = require('node-cron');
cron.schedule('*/2 * * * *', function(){
console.log('running a task every two minutes');
});
名前の使用
月と週の日には、名前または短い名前を使用することもできます。例:
1
2
3
4
5var cron = require('node-cron');
cron.schedule('* * * January,September Sunday', function(){
console.log('running on Sundays of January and September');
});
または短い名前で:
1
2
3
4
5var cron = require('node-cron');
cron.schedule('* * * Jan,Sep Sun', function(){
console.log('running on Sundays of January and September');
});
cronメソッド
Schedule
cron式がチェックされるたびに、指定されたタスクが実行されるようにスケジュールします。
引数:
- !文字列式-cron式
- !関数func-実行するタスク
- boolean?immediateStart-作成直後にスケジューラーを開始するかどうか。
ScheduledTaskメソッド
Start
スケジュールされたタスクを開始します。
1
2
3
4
5
6
7var cron = require('node-cron');
var task = cron.schedule('* * * * *', function() {
console.log('immediately started');
}, false);
task.start();
Stop
再起動しない限り、タスクは実行されません。
1
2
3
4
5
6
7var cron = require('node-cron');
var task = cron.schedule('* * * * *', function() {
console.log('will execute every minute until stopped');
});
task.stop();
Destroy
タスクは停止され、完全に破棄されます。
1
2
3
4
5
6
7var cron = require('node-cron');
var task = cron.schedule('* * * * *', function() {
console.log('will not execute anymore, nor be able to restart');
});
task.destroy();
Validate
指定された文字列が有効なcron式であることを検証します。
1
2
3
4var cron = require('node-cron');
var valid = cron.validate('59 * * * *');
var invalid = cron.validate('60 * * * *');
問題
寄稿者
一般的に、私たちは「フォークアンドプル」Gitワークフローに従います。
- GitHubでリポジトリをフォークします。
- フォーク内のブランチに変更をコミットします。
- 変更を加えてリクエストを「アップストリーム」にプルします。
注:プルリクエストを行う前に、必ず「アップストリーム」から最新のものをマージしてください。
自分で作成していないコードは、法的な能力があることが確実でない限り、投稿しないでください。また、投稿したすべてのコードがISCライセンスの下で配布できることを確認してください。
ライセンス
node-cronは下にあります ISC License。