Ana içeriğe atla

Documentation Index

Fetch the complete documentation index at: https://docs.azalt.co/llms.txt

Use this file to discover all available pages before exploring further.

Zamanlanmis Gorev (Cron Job)

Zamanlanmis Gorevler, duzenliaraliklar da JavaScript kodu calistiran otomasyon betikleridir. Organizasyonlarin veri senkronizasyonu, hesaplamalar, bildirimler ve dis sistemlerle entegrasyonlari otomatiklestirmesini saglar.

Bir Bakista

  • JavaScript kodu guvenli sandbox ortaminda calisir
  • Yapilandirabilir zamanlamalar: 5dk, 10dk, 15dk, 30dk, 1s, 2s, 4s, 6s, 12s, gunluk, haftalik
  • Organizasyon verilerine, veritabani islemlerine, HTTP istemcisine ve e-postaya erisim
  • Ortam degiskenleri ve sifrelenmis gizli deger destegi
  • Maksimum 5 dakika calisma suresi
  • Test icin manuel tetikleme secenegi

Veri Yapisi

// apps/azalt/src/server/db/types/cron-job.ts (basitlestirilmis)
interface CronJob {
  id: string;
  name: string;
  description: string | null;
  code: string;                    // Calistirilacak JavaScript kodu
  schedule: CronJobSchedule;       // Calisma sikligi
  isActive: boolean;               // Calismayi etkinlestir/devre disi birak
  organizationId: string;
  createdById: string;
  lastExecutionAt: Date | null;    // Son calisma zamani
  nextExecutionAt: Date | null;    // Sonraki planlanmis calisma
  metadata: JsonValue | null;      // Ozel meta veriler
}

type CronJobSchedule =
  | "5m"   // Her 5 dakikada
  | "10m"  // Her 10 dakikada
  | "15m"  // Her 15 dakikada
  | "30m"  // Her 30 dakikada
  | "1h"   // Her saat
  | "2h"   // Her 2 saatte
  | "4h"   // Her 4 saatte
  | "6h"   // Her 6 saatte
  | "12h"  // Her 12 saatte
  | "1d"   // Gunluk
  | "1w";  // Haftalik

Sandbox Ortami

JavaScript kodunuz bu API’lere erisimi olan izole bir sandbox’ta calisir:
APIAciklama
organizationMevcut organizasyon verileri ve lokasyonlar
dbVeritabani islemleri (RLS ile organizasyona kapsamli)
fetchHarici API cagrilari icin HTTP istemcisi
emailBildirim e-postalari gonderme
envOrtam degiskenleri (“variable” tipli CronJobVariable’lar)
secretsSifrelenmis gizli degerler (“secret” tipli CronJobVariable’lar)
consoleGunlukleme (calisma gunluklerinde yakalanir)

Ornek Kod

// Harici API'den veri senkronizasyonu
const response = await fetch('https://api.example.com/data', {
  headers: { 'Authorization': `Bearer ${secrets.API_KEY}` }
});

const data = await response.json();
console.log(`${data.items.length} oge cekildi`);

// Verileri isle ve kaydet
for (const item of data.items) {
  await db.insertInto('CustomTable')
    .values({ externalId: item.id, value: item.value })
    .execute();
}

// Bildirim gonder
await email.send({
  to: env.ADMIN_EMAIL,
  subject: 'Veri Senkronizasyonu Tamamlandi',
  body: `${data.items.length} oge basariyla senkronize edildi.`
});

return { synced: data.items.length };

Guvenlik ve Izinler

  • Olusturma/Guncelleme/Silme: Sahip rolu gerekli
  • Goruntuleme/Calistirma: Herhangi bir organizasyon uyesi
  • Sandbox: Kod, dosya sistemi erisimi olmadan izole VM’de calisir
  • RLS: Veritabani sorgulari satir duzeyi guvenlik politikalarina uyar
  • Gizli Degerler: Organizasyonun sifreleme anahtari kullanilarak duragan halde sifrelenir
  • Zaman Asimi: 5 dakika sonra otomatik sonlandirma

Calisma Akisi

  1. Zamanlayici nextExecutionAt <= simdi ve isActive = true olan gorevleri bulur
  2. Gorev kodu guvenli sandbox’ta calistirilir
  3. Calisma sonucu (basari/basarisizlik, gunlukler, cikti) kaydedilir
  4. nextExecutionAt zamanlamaya gore hesaplanir
  5. lastExecutionAt guncellenir

API Notlari

  • cronJob.list: Calisma istatistikleri ve degisken sayilariyla gorevleri dondurur
  • cronJob.get: Kod ve son calismalar dahil tam gorev detaylarini dondurur
  • cronJob.create: Yeni gorev olusturur (guvenlik icin pasif baslar)
  • cronJob.execute: Calismayi manuel tetikler (test icin kullanisli)
  • cronJob.toggle: Zamanlanmis calismayi etkinlestir/devre disi birak

Ilgili Kavramlar

  • CronJobVariable - Gorevler icin ortam degiskenleri ve gizli degerler
  • CronJobExecution - Calisma gecmisi ve gunlukler