> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# Zamanlanmış görevler

Schedule action'ları üzerinden yinelenen workspace işi.

## Başlangıç seviyesinde izlenecek yol

Önkoşullar: Aşağıdaki iki başlangıç kılavuzunu okuyun, Web yerel kurulumunu tamamlayın ve bu monorepo'yu düzenleyicinizde kökünden açın. Web ayarları `apps/web/.env.local`'ye aittir; Next.js, `.env` kökünü okumaz. Varsayılan sahte modda `/dashboard`, veritabanı olmayan bir demodur; `/auth`'nin taşınan bir veritabanına ihtiyacı var.

Kısa terimler: Çalışma alanı, bir ekibin ayrı kullanıcıları, verileri ve ayarlarıdır. Sunucu güvenilir arka uçtur; sağlayıcı anahtarlarını tarayıcı ve telefon kodundan uzak tutun. Geçiş, tabloları oluşturan veya güncelleyen sürümlü bir veritabanı değişikliğidir. Yapay zeka modeli yanıt veren motordur; model kataloğu, sunucunun mevcut model kimlikleri ve fiyatlarının listesidir. Sağlayıcı yapay zeka, e-posta veya faturalandırma hizmeti gibi bir dış hizmettir. Yetki, bir çalışma alanının bir özelliği kullanmasına olanak tanıyan bir yetkidir. Web kancası, bir hizmetin başka bir hizmetin URL'sine gönderdiği bir mesajdır.

1. Settings → Developers'yi açın ve UTC çalışma süresine sahip bir test işi oluşturmak için Zamanlamalar kontrollerini kullanın.

2. Uygulamayı çalışır durumda tutun ve aynı yalnızca sunucuya yönelik `SCHEDULER_TICK_SECRET`'yi uygulama ve terminal için kullanılabilir hale getirin; Aşağıdaki komutu depo kökünden çalıştırın.

3. Teslim süresinin ilerlediğini ve işin kendi durumuna ulaştığını onaylayın. Hiçbir şey çalışmazsa UTC saatini, zamanlayıcı sağlayıcısını ve sunucu günlüklerini kontrol edin; sırrı asla sohbete yapıştırmayın.

Özel kod için, sağlanan `prompts/README.md` ile başlayın ve en yakın istemi kopyalayın: Bir uygulama ekranı için `prompts/new-app-screen.md` veya genel bir sayfa için `prompts/new-landing-page.md`. Sunucu, veritabanı veya sağlayıcı çalışması için kodlama temsilcinize bu kılavuzun görevini verin ve ondan `AGENTS.md`, `.ai/PROJECT_CONTEXT.md` ve eşleşen `.ai/` aynalarını okumasını isteyin; burada adı geçen kaynak dosyaların tamamını inceleyin; düzenlemeden önce dosyaları ve kontrolleri listeleyin; çalışma alanı sahipliğini ve yalnızca sunucuya ait sırları koruyun; ve size farkı göstereceğim. İstediğiniz davranışı, giriş ve çıkış alanlarını, izin verilen rolleri, beklenen başarıyı ve hataları ve test hesabını, sağlayıcıyı veya cihazı ona bildirin. Örnek değerleri kullanın; asla gerçek bir sırrı yapıştırmayın.

[Başlamadan önce](https://supastack.dev/tr/docs/web/before-you-start.md)

[Terminal temelleri](https://supastack.dev/tr/docs/web/terminal-basics.md)

[Web yerel kurulumu](https://supastack.dev/tr/docs/web/ship-in-5-minutes.md)

[Aracı istemleri ve proje belleği](https://supastack.dev/tr/docs/web/agents.md)

```
corepack pnpm jobs:tick
```


## Yinelenen çalışmaları veritabanında saklayın

Ayarların planlanması, iş türünü ve cron kuralını çalışma alanı kapsamlı `job_schedule` satırlarında saklar. Cron alanları UTC'de değerlendirilir. `createDrizzleJobScheduler.claimDueSchedules`, `FOR UPDATE SKIP LOCKED`'yi kullanarak vadesi gelen satırları talep eder, bir sonraki çalıştırmaya ilerler ve ardından işleyicileri gönderir.

Genel `JobRunner`, kuyruğa alma/durum/iptal etme sözü verir. Yineleme zamanlayıcı satırlarına aittir; Trigger.dev iş akışı semantiği açık kalır.


## Sürüş planlayıcı tıklamaları

`POST /api/internal/scheduler-tick`'yi etkinleştirmek için yalnızca sunucuya yönelik bir `SCHEDULER_TICK_SECRET` ayarlayın. `corepack pnpm jobs:tick` bunu dev/CI için çağırır; eksik yapılandırma 404 değerini döndürür. `JOB_PROVIDER=trigger` altında, konuşlandırılan `scheduler.tick` cron zamanlayıcıyı çalıştırır.

```
# Against a running local app, with SCHEDULER_TICK_SECRET configured:
corepack pnpm jobs:tick
```


## Talepleri ve yürütmeyi ayrı ayrı doğrulayın

Çakışan onay işaretlerini, vadesi/vadesi gelmeme kurallarını, devre dışı bırakılan satırları, işleyici hatasını, iptali ve başka bir çalışma alanının zamanlamasını test edin. Talebi/avansı ve işin tamamlanmasını ayrı ayrı inceleyin; talep edilen bir satır işin tamamlandığının kanıtı değildir.

[Gönderilen email.digest örneği](https://supastack.dev/tr/docs/web/project-structure.md)

[Trigger.dev yürütmesi](https://supastack.dev/tr/docs/modules/jobs.md)


## Kurulum ve yapılandırma

Zamanlanmış işler — özetler, temizlikler, yenilemeler — geçici zamanlayıcılar yerine schedule-actions üzerinden geçer: listWorkspaceSchedules, upsertScheduleAction ve removeScheduleAction bir workspace'in cron güdümlü görevlerini yönetir.

Bir zamanlama görevi, cron ifadesini ve altında çalıştığı workspace'i adlandırır. Worker bağlamı çalışma zamanında çözer, bu yüzden duraklatılmış veya silinmiş bir zamanlama yeniden dağıtım olmadan iş üretmeyi durdurur.

```
listWorkspaceSchedules()
upsertScheduleAction({ task, cron })
removeScheduleAction(formData)
```


## Uygulama iş akışı

Her zamanlanmış çalıştırmayı güvenilmez girdi olarak ele alın: kayıttan bu yana durum değişmiş olabileceğinden workspace ve entitlement'ı çalıştırma içinde yeniden çözün. Görevi idempotent yapın — yeniden denenen veya iki kez tetiklenen bir çalıştırma etkileri çoğaltmamalıdır.

Zamanlamalar operasyonel yüzeydir: takılmış veya kontrolden çıkmış bir zamanlamanın kullanıcılar fark etmeden bulunması için onları ayarlarda veya günlüklerde görünür tutun.


## Doğrulama ve sorun giderme

Zamanlamayı bir sandbox'ta elle tetikleyin, duraklatın, devre dışı bir workspace'in çalıştırma üretmeyi durdurduğunu doğrulayın ve yinelenen bir tetiklemenin tek etki ürettiğini onaylayın. Cron ifadelerini görev koduna dağılmış halde değil, yönetilen yapılandırmada tutun.


## Sonraki

[İşlemsel e-posta](https://supastack.dev/tr/docs/modules/email.md)
