logologo
スタート
マニュアル
開発
プラグイン
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
スタート
マニュアル
開発
プラグイン
API
logologo

クイックスタート

プラグイン開発概要
最初のプラグインを作成
プロジェクトディレクトリ構造

サーバーサイド開発

概要
プラグイン
コレクション
データベース操作
データソース管理
リソース管理
ACL権限制御
ミドルウェア
キャッシュ
イベント
リクエストコンテキスト
マイグレーション
ロガー
I18n 国際化
コマンド
定時タスク管理
テスト

クライアントサイド開発

概要
プラグイン
コンテキスト
ルーター
ACL権限制御
データソース管理
リソース
リクエスト
スタイルとテーマ
ロガー
I18n 国際化
テスト

その他

プラグインアップグレードガイド
言語一覧
依存関係の管理
ビルド
Previous Pageコマンド
Next Pageテスト
TIP

このドキュメントはAIによって翻訳されました。不正確な情報については、英語版をご参照ください

#CronJobManager (定期実行タスク管理)

CronJobManager は、NocoBase が提供する cron をベースとした定期実行タスク管理機能です。プラグインがサーバーサイドで定期実行タスクを登録し、特定のロジックを周期的に実行できるようにします。

#基本的な使い方

import { Plugin } from '@nocobase/server';

export default class PluginCronDemo extends Plugin {
  async load() {
    this.app.cronJobManager.addJob({
      cronTime: '0 0 * * *', // 毎日 00:00 に実行
      onTick: async () => {
        console.log('日次タスク:一時データをクリーンアップ');
        await this.cleanTemporaryData();
      },
      timeZone: 'Asia/Shanghai',
      start: true, // 自動起動
    });
  }

  async cleanTemporaryData() {
    // ここにクリーンアップロジックを記述します
  }
}

#パラメーターの説明

CronJobParameters の型定義は以下の通りです(cron から引用)。

export declare interface CronJobParameters {
  cronTime: string | Date | DateTime;
  onTick: CronCommand;
  onComplete?: CronCommand | null;
  start?: boolean;
  timeZone?: string;
  context?: any;
  runOnInit?: boolean;
  utcOffset?: string | number;
  unrefTimeout?: boolean;
}
パラメーター型説明
cronTimestring | Date | DateTime定期実行タスクの時刻指定式です。標準の cron 式をサポートしており、例えば 0 0 * * * は毎日 00:00 に実行されることを示します。
onTickfunctionタスクの本体となる関数です。指定された時刻にトリガーされます。
onCompletefunctionタスクが job.stop() によって停止されたとき、または onTick 関数が完了したときに実行されます。
timeZonestring実行するタイムゾーンを指定します(例: Asia/Shanghai)。
contextanyonTick 実行時のコンテキストです。
runOnInitboolean初期化時に一度だけすぐに実行するかどうかを指定します。
utcOffsetstring | numberタイムゾーンのオフセットを指定します。
unrefTimeoutbooleanイベントループがアクティブな状態を維持するかどうかを制御します。

#Cron 式の例

式意味
* * * * *1分ごとに実行
0 * * * *1時間ごとに実行
0 0 * * *毎日 00:00 に実行
0 9 * * 1毎週月曜日 09:00 に実行
*/10 * * * *10分ごとに実行

💡 crontab.guru を利用すると、式の生成に役立ちます。

#タスクの起動と停止

const job = app.cronJobManager.addJob({ ... });
job.start(); // タスクを起動
job.stop();  // タスクを停止
TIP

定期実行タスクは、アプリケーションの起動とともに起動し、停止とともに停止します。特別な理由がない限り、通常は手動で start や stop を呼び出す必要はほとんどありません。