Node.js: Cronジョブ

Node.jsでcronジョブを使ってタスクを効果的に自動化する

👋 Stackheroのドキュメントへようこそ!

Stackheroは、数多くの利点を提供するNode.jsクラウドソリューションを提供しています。主な利点は以下の通りです:

  • シンプルなgit push数秒でアプリケーションをデプロイ
  • 独自のドメイン名を使用し、HTTPS証明書の自動設定による強化されたセキュリティを享受。
  • 自動バックアップワンクリックアップデート、そしてシンプルで透明性があり、予測可能な価格設定で安心を提供。
  • プライベートで専用のVMによる最適なパフォーマンスと強固なセキュリティを実現。

時間を節約し、生活を簡素化:StackheroのNode.jsクラウドホスティングソリューションを試すのに5分しかかかりません

Node.jsアプリケーションを開発する際、スケジュールされたメールの送信、期限切れデータのクリーンアップ、定期的なメンテナンスの実行などの繰り返しタスクを自動化することで、効率性とスケーラビリティを大幅に向上させることができます。npmで利用可能なcronモジュール(cronモジュール on npm)は、このような自動化を実装するための簡単で効果的な方法を提供します。

注: node-cron npmモジュールもcronタスクのための利用可能なツールですが、このガイドは特にcronモジュールとその実装に焦点を当てています。

プロジェクトでcronモジュールを使用するには、次のコマンドを実行して依存関係として含めます。

npm install cron

モジュールがインストールされたら、アプリケーションでcronジョブをスケジュールして管理を開始できます。以下は実用的な例です。

const cron = require('cron');
const cronJobs = [];

// アプリケーションのシャットダウンを優雅に処理するために、すべてのスケジュールされたcronジョブを停止します。
// 新しいコードをデプロイする際やアプリをシャットダウンする際に、終了シグナル(SIGTERM)が送信されます。
// これにより、アプリは終了する前にすべての実行中のcronジョブを停止します。
process.on('SIGTERM', () => {
  cronJobs.forEach(cronJob => cronJob.stop());
});

// 毎秒実行するcronジョブをスケジュールします。
cronJobs.push(
  new cron.CronJob(
    '* * * * * *', // スケジュール: 毎秒
    () => {
      console.log("このメッセージは毎秒表示されます。");
    },
    null,
    true
  )
);

// 毎分実行するcronジョブをスケジュールします。
cronJobs.push(
  new cron.CronJob(
    '0 */1 * * * *', // スケジュール: 毎分
    () => {
      console.log("このメッセージは毎分表示されます。");
    },
    null,
    true
  )
);

cronモジュールは、スケジュールを定義するために標準のUNIX cron構文を使用します。以下はいくつかの一般的な例です。

  • 毎秒: * * * * * *
  • 30秒ごと: */30 * * * * *
  • 10分ごと: 0 */10 * * * *
  • 2時間ごと: 0 0 */2 * * *

これで、Node.jsアプリケーションでcronモジュールを使用してタスクを自動化する準備が整いました。詳細な情報や例については、公式cronモジュールリポジトリを訪れ、例のディレクトリをチェックしてください。