Gyro Kapsayıcı: zamanlanmış görev (cron)
1. Nasıl çalışır
- Zamanlama üç türlüdür: cron ifadesi (
dakika saat gün ay haftanın-günü, ör.0 3 * * *;@daily,@hourlyda olur), her N dakikada ya da tek sefer (tarih ve saat). - Saatler seçtiğiniz saat dilimine göredir; varsayılan
Europe/Istanbul. Yurt dışındaki kullanıcılarınız için ör.UTCya daEurope/Berlinseçebilirsiniz. - Servis komutu hedefinde her çalışma bir tek seferlik görev olarak başlar: servisin o anda çalışan sürümünün imajı, değişkenleri ve gizli değerleri kullanılır. Yeni sürüm dağıttığınızda sonraki çalışma yeni sürümle olur.
- HTTP çağrısı hedefinde ortamınızın içinden bir istek gönderilir (GET, POST, PUT, PATCH, DELETE, HEAD). Başlıklar ve gövde gizli saklanır, bir daha gösterilmez. Yanıt kodu 400 ve üstüyse çalışma başarısız sayılır; yönlendirme izlenmez. Kendi servisinizi iç adresiyle çağırabilirsiniz:
http://<servis>.<namespace>.svc.cluster.local. Özel ağ ve platform adreslerine ulaşılamaz. - Üst üste binme yoktur: bir zamanlamanın önceki çalışması sürerken yenisi başlamaz, geçmişte Atlandı olarak görünür.
- Tekrar deneme: başarısız çalışma 30 sn, 60 sn, 90 sn arayla en çok 3 kez yeniden denenir (siz seçersiniz, varsayılan 0).
2. Panelden eklemek
- Hizmetinizde Görevler sekmesini açın, üstteki Zamanlanmış düğmesine basın.
- Zamanlama ekle'ye basın, bir ad yazın (ör.
gece-raporu). - Ne zaman alanında Cron ifadesi, Her N dakikada ya da Tek sefer seçin. Hazır düğmeler (
0 3 * * *,*/15 * * * *…) işinizi kolaylaştırır; Sonraki çalışmalar satırı ifadeyi seçtiğiniz saat diliminde gösterir. - Ne çalışsın alanında Servis komutu (servis + komut + zaman sınırı) ya da HTTP çağrısı (yöntem + adres + başlıklar + gövde) seçin.
- İsterseniz Tekrar deneme sayısını girin ve Kaydet'e basın.
- Listede her zamanlamanın sonraki ve son çalışmasını görürsünüz. Şimdi çalıştır, Geçmiş (son 20 çalışma ve çıktıları), Duraklat / Devam ettir, Düzenle ve Sil düğmeleri satırın sonundadır.
3. CLI, API, Terraform ve yapay zeka asistanı ile
# her gece 03:00 (İstanbul), iki kez tekrar denemeli
gyro container schedule create 12345 gece-raporu --cron "0 3 * * *" --service api --retries 2 -- npm run report
# 15 dakikada bir kendi adresinizi çağırın
gyro container schedule create 12345 kuyruk --every 15m --url https://api.example.com/cron --method POST --header "Authorization: Bearer $TOKEN"
# 1 Aralık 09:00'da bir kez
gyro container schedule create 12345 kampanya --at 2026-12-01T09:00 --service api -- node send.js
gyro container schedule list 12345
gyro container schedule run-now 12345 gece-raporu
gyro container schedule pause 12345 gece-raporu
gyro container schedule preview 12345 --cron "0 9 * * 1-5" --timezone UTC
API: POST /cloud/containers/{id}/schedules gövdesi {"name":"gece-raporu","cron":"0 3 * * *","service":"api","command":["npm","run","report"],"retries":2}; liste GET .../schedules, ayrıntı ve geçmiş GET .../schedules/{ad}, değiştirme PATCH, silme DELETE, POST .../pause|resume|run, önizleme POST .../schedules/preview.
Terraform:
resource "gyro_container_schedule" "rapor" {
environment_id = 12345
name = "gece-raporu"
cron = "0 3 * * *"
timezone = "Europe/Istanbul"
service = "api"
command = ["npm", "run", "report"]
retries = 2
}
Gyro MCP'de araçlar: list_container_schedules, get_container_schedule, preview_container_schedule, create_container_schedule, update_container_schedule, pause_container_schedule, resume_container_schedule, run_container_schedule_now, delete_container_schedule.
4. Bildirimler
- schedule_failed: çalışma, tekrar denemelerden sonra da başarısız olduysa.
- schedule_missed: çalışma planlanan saatte başlatılamadıysa (ör. platform bakımı); sonraki çalışma takvime göre yapılır.
- Bildirimler Bildirimler sekmesindeki kanallarınıza (e-posta, SMS, Telegram, imzalı webhook) gider. Sürekli başarısız olan sık bir zamanlama sizi boğmasın diye zamanlama başına tekrar aralığında (varsayılan 30 dakika) en çok bir mesaj gönderilir; hepsi geçmişte kayıtlıdır.
5. Sınırlar ve ücret
| Düğümlü paketler | Sunucusuz | |
|---|---|---|
| Ortam başına zamanlama | 2 vCPU'ya kadar paketlerde 5, diğerlerinde 10 | 5 |
| En kısa aralık | 1 dakika | 5 dakika |
| Ücret | Ek ücret yok (çalışma düğümlerinizde) | Her çalışma görev (task) gibi vCPU-saniye / GB-saniye |
- Zamanlanmış çalışmalar eşzamanlı görev sınırına sayılır (tek seferlik görev); sınır doluysa çalışma başarısız sayılır ve bildirim gelir.
- Sınırlar destek talebiyle artırılabilir (
gyro limitssınırları gösterir). - Ortam askıdayken hiçbir zamanlama çalışmaz; ortam silinince zamanlamalar da silinir.
6. Sık sorulanlar
Saat dilimini değiştirirsem ne olur? Sonraki çalışma yeni saat dilimine göre hemen yeniden hesaplanır.
Aynı iş birden fazla kopyada mı çalışıyor? Hayır. Servisinizin kaç kopyası olursa olsun zamanlama tek bir görev başlatır; önceki çalışma sürerken yenisi başlamaz.
Çıktıyı nerede görürüm? Zamanlamanın Geçmiş listesinden ya da Görevler > Tek seferlik listesinden; CLI'da gyro container job logs 12345 <görev>.
Bir çalışmayı kaçırırsam telafi edilir mi? Hayır. Kaçan çalışma Kaçırıldı olarak kaydedilir ve bildirim gelir; bir sonraki çalışma takvime göre yapılır. Duraklatıp devam ettirdiğinizde de sonraki çalışma o andan itibaren hesaplanır.
Cron ifadesinde hem ayın günü hem haftanın günü varsa? Klasik cron'daki gibi ikisinden biri tutunca çalışır (ör. 0 0 13 * 5 = ayın 13'ü ya da her cuma).
Geri bildiriminiz için teşekkürler!
