-
Nest.jsプロジェクトのセットアップ: Nest.jsプロジェクトを作成し、必要な依存関係をインストールします。ターミナルで以下のコマンドを実行します:
$ npm install -g @nestjs/cli $ nest new my-project
-
Cronジョブクラスの作成:
src
ディレクトリ内にjobs
ディレクトリを作成し、その中にCronジョブクラスを作成します。例えば、my-cron.job.ts
というファイル名でクラスを作成します。import { Injectable } from '@nestjs/common'; import { Cron } from '@nestjs/schedule'; @Injectable() export class MyCronJob { @Cron('0 * * * *') // Cronジョブのスケジュール(毎時0分) handleCron() { // 実行したいバックグラウンドタスクのコードをここに記述します console.log('Cronジョブが実行されました'); } }
-
Cronジョブの登録:
app.module.ts
ファイルでCronジョブを登録します。imports
配列にScheduleModule.forRoot()
を追加し、providers
配列にCronジョブクラスを追加します。import { Module } from '@nestjs/common'; import { ScheduleModule } from '@nestjs/schedule'; import { MyCronJob } from './jobs/my-cron.job'; @Module({ imports: [ ScheduleModule.forRoot(), ], providers: [ MyCronJob, ], }) export class AppModule {}
-
Cronジョブの実行: Nest.jsアプリケーションを起動し、Cronジョブが自動的に実行されるようになります。
$ npm run start
コンソールには、Cronジョブの実行ログが表示されます。
これで、Nest.jsでCronジョブを作成し、スケジュールされたバックグラウンドタスクを実行する準備が整いました!必要に応じてスケジュールを変更し、実行したいバックグラウンドタスクのコードをCronジョブのhandleCron
メソッドに追加してください。