logologo
Başlangıç
Kılavuz
Geliştirme
Eklentiler
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Başlangıç
Kılavuz
Geliştirme
Eklentiler
API
logologo

Hızlı Başlangıç

Eklenti Geliştirmeye Genel Bakış
İlk Eklentinizi Yazma
Proje Dizin Yapısı

Sunucu Taraflı Geliştirme

Genel Bakış
Plugin
Collections
Database İşlemleri
DataSourceManager
ResourceManager
ACL İzin Kontrolü
Middleware
Cache
Event
Context
Migration
Logger
I18n
Command
CronJobManager
Test

İstemci Taraflı Geliştirme

Genel Bakış
Plugin
Context
Router
ACL İzin Kontrolü
DataSourceManager
Resource
Request
Styles & Themes
Logger
I18n
Test

Diğer

Eklenti Yükseltme Kılavuzu
Dil Listesi
Bağımlılık Yönetimi
Derleme
Previous PageCommand
Next PageTest
TIP

Bu belge AI tarafından çevrilmiştir. Herhangi bir yanlışlık için lütfen İngilizce sürümüne bakın

#CronJobManager Zamanlanmış Görev Yönetimi

CronJobManager, NocoBase tarafından sunulan, cron tabanlı bir zamanlanmış görev yöneticisidir. Eklentilerin, sunucu tarafında belirli bir mantığı periyodik olarak yürütmek üzere zamanlanmış görevler kaydetmesine olanak tanır.

#Temel Kullanım

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

export default class PluginCronDemo extends Plugin {
  async load() {
    this.app.cronJobManager.addJob({
      cronTime: '0 0 * * *', // Her gün 00:00'da çalışır
      onTick: async () => {
        console.log('Günlük görev: Geçici verileri temizle');
        await this.cleanTemporaryData();
      },
      timeZone: 'Asia/Shanghai',
      start: true, // Otomatik başlat
    });
  }

  async cleanTemporaryData() {
    // Temizleme mantığını burada uygulayın
  }
}

#Parametre Açıklamaları

CronJobParameters tip tanımı aşağıdaki gibidir (cron adresinden alınmıştır):

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;
}
ParametreTipAçıklama
cronTimestring | Date | DateTimeZamanlanmış görevin zaman ifadesi. Standart cron ifadelerini destekler, örneğin 0 0 * * * her gün 00:00'da çalışır anlamına gelir.
onTickfunctionGörevin ana fonksiyonu. Belirtilen zamanda tetiklenecektir.
onCompletefunctionGörev job.stop() ile durdurulduğunda veya onTick fonksiyonu tamamlandığında çalışır.
timeZonestringÇalışma saat dilimini belirtir (örneğin Asia/Shanghai).
contextanyonTick çalıştırılırken kullanılacak bağlam.
runOnInitbooleanBaşlatma sırasında hemen bir kez çalıştırılıp çalıştırılmayacağını belirtir.
utcOffsetstring | numberSaat dilimi ofsetini belirtir.
unrefTimeoutbooleanOlay döngüsünün aktif kalıp kalmayacağını kontrol eder.

#Cron İfadesi Örnekleri

İfadeAnlamı
* * * * *Her dakika çalışır
0 * * * *Her saat çalışır
0 0 * * *Her gün 00:00'da çalışır
0 9 * * 1Her Pazartesi 09:00'da çalışır
*/10 * * * *Her 10 dakikada bir çalışır

💡 İfadeleri oluşturmak için crontab.guru adresini kullanabilirsiniz.

#Görevin Başlatılması ve Durdurulması

const job = app.cronJobManager.addJob({ ... });
job.start(); // Görevi başlat
job.stop();  // Görevi durdur
TIP

Zamanlanmış görevler, uygulama ile birlikte başlar ve durur. Genellikle, manuel olarak başlatmanız veya durdurmanız gerekmez.