ホームページ  >  記事  >  ウェブフロントエンド  >  Node.js アプリケーションを正常にシャットダウンする方法

Node.js アプリケーションを正常にシャットダウンする方法

PHPz
PHPzオリジナル
2023-04-17 15:08:571135ブラウズ

Node.js は、オープンソースのクロスプラットフォーム ランタイム環境です。これにより、新進の Web 開発者は、単純な JavaScript コードを使用して効率的なアプリケーションを構築できます。ただし、開発時には、Node.js アプリケーションを正常にシャットダウンする方法を考慮する必要があります。この記事では、Node.js コードを正常に停止する方法について説明します。

  1. Ctrl C ショートカット キー
    ターミナル ウィンドウで Ctrl C キーの組み合わせを押すと、Node.js アプリケーションが強制的に閉じられます。 Linux および Unix 環境では、この方法が最も速く、最も一般的に使用されます。このキーの組み合わせは Node.js プロセス マネージャーにバインドされており、Ctrl C キーを押してアプリケーションを閉じるために使用できます。
  2. シグナル処理関数
    Node.js のシグナル処理関数は、コードをシャットダウンするもう 1 つの効果的な方法です。このメソッドは、プロセス オブジェクトの組み込み on メソッドを使用してシグナルをリッスンします。シグナルが捕捉されると、それに応答するコードを作成できます。このアプローチを使用すると、シグナルを捕捉して処理できるため、デフォルトの Node.js 終了ハンドラーがアプリケーションを終了するのを防ぐことができます。

以下は、シグナル ハンドラー ハンドラーをセットアップする方法を示す例です:

function gracefulShutdown() {
  console.log("Node process stopping...");

  // 停止Web服务器
  server.close(() => console.log("HTTP server stopped"));

  // 关闭数据库连接
  mongoose.connection.close(() => console.log("MongoDB connection closed"));

  // 结束Node进程
  process.exit(0);
}

process.on("SIGTERM", gracefulShutdown);
process.on("SIGINT", gracefulShutdown);

このコード スニペットでは、SIGTERM および SIGINT シグナルが受信されると、gracefulShutdown 関数が実行されます。次の操作を完了します:

  • HTTP サーバーを閉じます。
  • MongoDB データベース接続を閉じます。
  • Node.js プロセスを終了します。
  1. Process.exit() メソッド
    Node.js では、アプリケーションを完全に終了する場合は、process.exit(0) メソッドを使用できます。この場合、アプリケーションは何も表示せずに終了します。ただし、この方法は正常に停止するものではないことに注意してください。
  2. Node モジュールと npm モジュールの使用
    Node.js モジュールと npm モジュールは、Node.js アプリケーションの起動と管理のために特別に設計されています。この方法を使用する場合は、npm モジュールを使用してアプリケーションを停止するコードを処理する Node アプリケーションをインストールする必要があります。通常、このアプローチには、アプリケーションが正常に停止することを保証するための警告イベントまたは終了イベントが含まれます。

Node.js の fourforever モジュールの使用例を次に示します。

var forever = require("forever");

var child = new (forever.Monitor)("app.js", {
  max: 3, //最多重启3次
  silent: true, // 启动应用程序时,不显示输出到控制台的日志
  args: []
});

// 在关闭应用程序之前执行以下操作
child.on("exit", function() {
  console.log("App has stopped");
});

// 启动并监视应用程序
child.start();

このコード スニペットでは、forever モジュールは Node.js アプリケーションを起動して監視できます。アプリケーションの再起動を 4 回試行しても成功しなかった場合、アプリケーションは停止します。この方法を使用する場合は、サーバー上のすべてのプロセスが確実に閉じられるように、最後に永遠モジュールを停止する必要があります。

結論

Node.js アプリケーション開発では、アプリケーションを正しく停止することが重要な問題です。 Node.js アプリケーションを正常にシャットダウンすると、データは保持され、すべてのリソースは影響を受けず、他のアプリケーションの実行も影響を受けません。この記事では、Ctrl C ショートカット キーの使用、信号処理関数の作成、process.exit(0) メソッドの使用、Node および npm モジュールの使用の 4 つの異なる方法を説明します。 Node.js アプリケーションが正常に停止するように、ニーズに最も適した方法を選択できます。

以上がNode.js アプリケーションを正常にシャットダウンする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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