目次
egg フレームワークによって提供される Schduler スケジュールされたタスク
node-schedule
最後に記載
ホームページ ウェブフロントエンド jsチュートリアル Nodejs でスケジュールされたタスクを実行する方法についての簡単な説明

Nodejs でスケジュールされたタスクを実行する方法についての簡単な説明

Oct 25, 2021 am 09:49 AM
nodejs スケジュールされたタスク

この記事では、Node スケジュールされたタスクを実装する方法を紹介します。皆様のお役に立てれば幸いです。

Nodejs でスケジュールされたタスクを実行する方法についての簡単な説明

現在このようなご要望をいただいております。各ユーザーはスケジュールされたプッシュをカスタマイズできます。スケジュールされたタスクの時間構成はユーザー自身が設定し、いつでも変更できますサーバーは、スケジュールされたタスクを実行する時間を設定します。 [推奨される学習: "nodejs チュートリアル "]

スケジュールされたタスクのサイクルがわかっている場合は、Linux Crontab のスケジュールされたタスクを実装できます。ノードにはすでに比較的成熟したソリューションがあります。以下に、私自身が学んだ Node のスケジュールされたタスクのソリューションを紹介します。

egg フレームワークによって提供される Schduler スケジュールされたタスク

egg は、Alibaba の Node エンタープライズ レベルのアプリケーション フレームワークであり、開発者がスケジュールされたタスクをエレガントに作成するための一連のメカニズムを提供します。詳細については、公式ドキュメントを参照してください: https://eggjs.org/zh-cn/basics/schedule.html 具体的な使用法についてはここでは詳しく説明しませんが、その構成の使用法については簡単に説明します。議論しました。

1. 静的にスケジュールされたタスク、つまりスケジュールされたサイクルには、ハードコーディングされた処理ロジックがあります。

2. スケジュールされたタスクを動的に構成することで、比較的柔軟性が高くなります。開発者は、構成ファイルを通じてスケジュールされたタスクのサイクルを制御できます。

3. コードを通じてスケジュールされたタスクを手動でトリガーする スケジュールされたタスクを何らかのロジックに基づいてトリガーするかどうかを決定できます。

上記の 3 つの点から、egg が提供するスケジュールされたタスクでは、ユーザーが自分でタイミング期間を設定するというニーズを満たすことができないため、他の解決策を探すしかありません。 -schedule ライブラリは、スケジュールされたタスク機能も提供します。

node-schedule

node-schudule のドキュメントを参照した後 https://www.npmjs.com/package/node-scheduleその後の使用法は次のとおりです:

const schedule = require('node-schedule');

const job = schedule.scheduleJob('42 * * * *', function(){
  console.log('The answer to life, the universe, and everything!');
});
ログイン後にコピー

はい、カスタム タイミング サイクルをサポートしています。これは私たちのニーズを満たすことができ、私たちが選択できます。素晴らしい!

引き続き他の開発者の使用方法を参照してください。この記事で、ノード スケジュールに関連した問題レコードを見つけました。つまり、スケジュールされた時刻にタイマーが 2 回実行されました。特定の問題については、原文を参照してください: https://cnodejs.org/topic/5b58414b8d66b90b2b7384a7。これは確率の低い問題です。検証はしていません。ニーズがあるため、タイマーは 2 回実行されますが、結果には影響しません。したがって、これは使用を妨げる障害ではありません。興味のある学生は、次のことを行ってください。バグをテストします。

最後に記載

最後に、私たち自身のプロジェクトのスケジュールされたタスクの解決策の概要を示します。興味のない学生は読み飛ばしてください。

私たちのバックエンドは Egg フレームワークを使用しているため、最終的な解決策はノード スケジュール タイマーをエージェント プロセスに追加することです。ユーザーのタイマーはエージェント プロセスで同期的に実行されます。現在、ユーザーの数は増えていません。サイズが大きいので当面はこの解決策しか考えていませんが、将来的に容量が増えた場合にはバックエンドを分散配置する可能性もあります。

これは問題であり、単一のプロセスを大容量で実行することも問題になります。また、egg 自体も、エージェント プロセスであまりにも多くのビジネス関連のことを実行することを推奨しません。もう 1 つ重要なことは、エージェントは補助プロセスであるということです。一部の公開作業はエージェント内で完了します。キャッチされないエラーが発生した場合、エージェントは終了せずに再起動されるため、フォールト トレランス処理を適切に実行する必要があります。

プログラミング関連の知識について詳しくは、プログラミング ビデオをご覧ください。 !

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

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Nodejsとvuejsの違い Nodejsとvuejsの違い Apr 21, 2024 am 04:17 AM

Node.js はサーバー側の JavaScript ランタイムであり、Vue.js は対話型ユーザー インターフェイスを作成するためのクライアント側の JavaScript フレームワークです。 Node.js はバックエンド サービス API 開発やデータ処理などのサーバー側開発に使用され、Vue.js はシングルページ アプリケーションや応答性の高いユーザー インターフェイスなどのクライアント側開発に使用されます。

Nodejs はバックエンド フレームワークですか? Nodejs はバックエンド フレームワークですか? Apr 21, 2024 am 05:09 AM

Node.js は、高いパフォーマンス、スケーラビリティ、クロスプラットフォーム サポート、豊富なエコシステム、開発の容易さなどの機能を備えているため、バックエンド フレームワークとして使用できます。

Nodejsをmysqlデータベースに接続する方法 Nodejsをmysqlデータベースに接続する方法 Apr 21, 2024 am 06:13 AM

MySQL データベースに接続するには、次の手順に従う必要があります。 mysql2 ドライバーをインストールします。 mysql2.createConnection() を使用して、ホスト アドレス、ポート、ユーザー名、パスワード、データベース名を含む接続オブジェクトを作成します。 connection.query() を使用してクエリを実行します。最後に connection.end() を使用して接続を終了します。

Nodejsのグローバル変数とは何ですか Nodejsのグローバル変数とは何ですか Apr 21, 2024 am 04:54 AM

Node.js には次のグローバル変数が存在します。 グローバル オブジェクト: グローバル コア モジュール: プロセス、コンソール、require ランタイム環境変数: __dirname、__filename、__line、__column 定数: unknown、null、NaN、Infinity、-Infinity

Nodejs インストール ディレクトリ内の npm ファイルと npm.cmd ファイルの違いは何ですか? Nodejs インストール ディレクトリ内の npm ファイルと npm.cmd ファイルの違いは何ですか? Apr 21, 2024 am 05:18 AM

Node.js インストール ディレクトリには、npm と npm.cmd という 2 つの npm 関連ファイルがあります。違いは次のとおりです。拡張子が異なります。npm は実行可能ファイルで、npm.cmd はコマンド ウィンドウのショートカットです。 Windows ユーザー: npm.cmd はコマンド プロンプトから使用できますが、npm はコマンド ラインからのみ実行できます。互換性: npm.cmd は Windows システムに固有ですが、npm はクロスプラットフォームで使用できます。使用上の推奨事項: Windows ユーザーは npm.cmd を使用し、他のオペレーティング システムは npm を使用します。

NodejsとJavaの間に大きな違いはありますか? NodejsとJavaの間に大きな違いはありますか? Apr 21, 2024 am 06:12 AM

Node.js と Java の主な違いは、設計と機能です。 イベント駆動型とスレッド駆動型: Node.js はイベント駆動型で、Java はスレッド駆動型です。シングルスレッドとマルチスレッド: Node.js はシングルスレッドのイベント ループを使用し、Java はマルチスレッド アーキテクチャを使用します。ランタイム環境: Node.js は V8 JavaScript エンジン上で実行され、Java は JVM 上で実行されます。構文: Node.js は JavaScript 構文を使用し、Java は Java 構文を使用します。目的: Node.js は I/O 集中型のタスクに適しており、Java は大規模なエンタープライズ アプリケーションに適しています。

Nodejs はバックエンド開発言語ですか? Nodejs はバックエンド開発言語ですか? Apr 21, 2024 am 05:09 AM

はい、Node.js はバックエンド開発言語です。これは、サーバー側のビジネス ロジックの処理、データベース接続の管理、API の提供などのバックエンド開発に使用されます。

NodejsとJavaのどちらを選択しますか? NodejsとJavaのどちらを選択しますか? Apr 21, 2024 am 04:40 AM

Web 開発において Node.js と Java にはそれぞれ長所と短所があり、どちらを選択するかはプロジェクトの要件によって異なります。 Node.js はリアルタイム アプリケーション、迅速な開発、マイクロサービス アーキテクチャに優れており、Java はエンタープライズ グレードのサポート、パフォーマンス、セキュリティに優れています。

See all articles