ホームページ >ウェブフロントエンド >jsチュートリアル >スケジュールされたタスクをノードに実装する方法
Node のスケジュールされたタスクの実装方法: 1. setTimeOut とイベント イベントを管理に使用する; 2. 追加されたすべてのイベントを並べ替え、現在時刻と最新のイベント発生時刻の間の時間間隔を計算する; 3. Just を呼び出すsetTimeOut でコールバックを設定します。
#このチュートリアルの動作環境: linux7.3 システム、node18.4.0 バージョン、Dell G3 コンピューター。
ノードはスケジュールされたタスクをどのように実装しますか?
ノードのスケジュールされたタスク (ノード スケジュール モジュール)
スケジュールされたタスクを実現する毎日午前10時にサーバー上のgitコードを2つの時点で更新する機能 koa2フレームワーク
import schedule from 'node-schedule'; import updateCode from './controllers/hcpLan/fetch' const app = new Koa(); const router = new Router(); router.get( '/', (ctx, next) => { ctx.body = 'hello' }); app.use(router.routes()).use(router.allowedMethods()); let rule = new schedule.RecurrenceRule() /**每天的凌晨12点更新代码*/ rule.hour = 0 rule.minute = 0 rule.second = 0 /**启动任务*/ schedule.scheduleJob(rule, () => { updateCode.cloneRepo(); console.log('代码更新了!'); }) app.listen(3000)
node-schedule原則の下で
app.jsファイル: を使用します。追加されたすべてのイベントを管理および管理する setTimeOut とイベント イベントをソートし、現在時刻と最新のイベント発生時刻との時間間隔を計算し、setTimeOut を呼び出してコールバックを設定します。一般に、イベントには 1 回限りのイベントと定期的なイベントの 2 種類があり、1 回限りのタスクは呼び出されて終了し、定期タスクは継続的に呼び出されます。期間に基づいて次の定期タスクを生成し、タスク リストに追加して並べ替えます。各タスク呼び出しの終了時に、次のタスクが計算され、準備されます。
1. タイマーの設定
node-schedule により、さまざまなルールでタイミングを実装できるようになります
1. Cron スタイルのタイマー
* * * * * * ┬ ┬ ┬ ┬ ┬ ┬ │ │ │ │ │ | │ │ │ │ │ └ 一周的星期 (0 - 7) (0 or 7 is Sun) │ │ │ │ └───── 月份 (1 - 12) │ │ │ └────────── 月份中的日子 (1 - 31) │ │ └─────────────── 小时 (0 - 23) │ └──────────────────── 分钟 (0 - 59) └───────────────────────── 秒 (0 - 59, OPTIONAL) var schedule = require('node-schedule'); //当分钟为42时,执行一个cron任务 var j = schedule.scheduleJob('42 * * * *', function(){ console.log('执行了!'); });
2.Date オブジェクトルール タイマー
var schedule = require('node-schedule'); var date = new Date('2017-09-26 22:00:00'); var j = schedule.scheduleJob(date, function(){ console.log('执行了!'); });
3.RecurrenceRule インスタンス ルール タイマー
var schedule = require('node-schedule'); var rule = new schedule.RecurrenceRule(); rule.minute = 42; var j = schedule.scheduleJob(rule, function(){ console.log('执行了!'); });
具体的な使用方法については、github ドキュメントを参照してください https://github.com/node-schedule/node-schedule
推奨される学習: 「nodejs ビデオ チュートリアル 」
以上がスケジュールされたタスクをノードに実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。