Cron Ayarları

1.6k görüntülenme Markdown

Otomasyonun yapılandırmasını, genel anahtarını ve cron gizli anahtarını yöneten dört uç.

Genel Bakış

Bu dört uç otomasyonun kendisini ayarlar: ne kadar süre kayıt tutulacağını, ağır işlerin hangi saatlerde çalışacağını, otomasyonun açık olup olmadığını ve cron adresini koruyan gizli anahtarı.

Genel anahtar bir acil durdurma kolu gibidir. Kapatıldığında hiçbir görev çalışmaz: fatura kesilmez, hizmet yenilenmez, bildirim gitmez. Kapatan kişi ve zamanı ayarlarda kayıtlı kalır.

Gizli anahtar cron adresinin parolasıdır ve okunamaz; ayarlar yalnız tanımlı olup olmadığını söyler. Yenilemek onu bir kez döndürür ve eski adresi geçersiz kılar.

Referans

Ayarları Getirme

get/api/v1/admin/automation/settings
Automation/GetAutomationSettings admin

Otomasyonun yapılandırmasını ve genel anahtarının durumunu döndürür.

Dönen alanlar data — 8
cron_enabledboolOtomasyonun genel anahtarı açık mı.
disabled_atstring | nullKapatıldığı an.
disabled_bystring | nullKapatan kişi.
time_windowobjectAğır işlerin çalıştığı zaman aralığı: başlangıcı ve bitişi.
retentionobjectKayıtların ne kadar saklandığı: tamamlanan, iptal edilen ve düşen işler için ayrı gün sayıları.
secret_setboolCron gizli anahtarının tanımlı olup olmadığı. Anahtarın kendisi hiçbir zaman dönmez.
restoreobjectGeri yükleme şüphesi: ne zaman doğduğu ve kaç saatlik boşluğa dayandığı.
tasksobjectGörev tanımlarının ham hâli.
Hatalar 1
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl 'https://panel.ornek.com/api/v1/admin/automation/settings' \
  -H "Authorization: Bearer $API_KEY"
const res  = await fetch('https://panel.ornek.com/api/v1/admin/automation/settings', {
  headers: { Authorization: `Bearer ${apiKey}` },
});
const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/automation/settings');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Gizli anahtar DONMEZ: yalniz tanimli olup olmadigini soyleyen bir isaret gelir.
$s = Api::Automation()->GetAutomationSettings()['data'];
$ready = $s['cron_enabled'] && $s['secret_set'];

Ayarları Yazma

put/api/v1/admin/automation/settings
Automation/UpdateAutomationSettings admin

Kayıtların saklanma süresini ve çalışma aralığını yazar.

Gövde 4
completed_daysintTamamlanan işlerin kaç gün saklanacağı. En az bir gün.
cancelled_daysintİptal edilen işlerin kaç gün saklanacağı.
failed_daysintDüşen işlerin kaç gün saklanacağı.
time_windowobjectAğır işlerin çalışacağı aralık: başlangıç ve bitiş saati. Gün başından sonra en az bir saat sürmeli.
Dönen alanlar data — 8
dataobjectGüncel ayarlar. Getirme ucuyla aynı şekildedir.
Hatalar 3
invalid_window422Çalışma aralığı çok kısa.
config_write_failed422Ayar dosyası yazılamadı.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X PUT 'https://panel.ornek.com/api/v1/admin/automation/settings' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"completed_days":30,"failed_days":30,"time_window":{"start":"00:00","end":"06:00"}}'
const res = await fetch('https://panel.ornek.com/api/v1/admin/automation/settings', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    completed_days: 30,
    cancelled_days: 7,
    failed_days: 30,
    time_window: { start: '00:00', end: '06:00' },
  }),
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/automation/settings');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'completed_days' => 30,
        'failed_days'    => 30,
    ]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Saklama suresini KISALTMAK gecmisi hemen silmez; temizlik ayri bir cagridir.
Api::Automation()->UpdateAutomationSettings(['completed_days' => 7]);

Otomasyonu Durdurma

put/api/v1/admin/automation/cron-enabled
Automation/ToggleAutomationCron admin her şeyi durdurur

Otomasyonun genel anahtarını açar ya da kapatır.

Gövde 1
enabledintreqOtomasyonu açar ya da tümüyle durdurur.
Dönen alanlar data — 2
cron_enabledboolAnahtarın yeni durumu.
changedboolBir şey değişti mi. Yanlışsa anahtar zaten o durumdaydı.
Hatalar 3
enabled_required422Açık ya da kapalı bilgisi verilmedi.
blocked_by_gate422Bir kanca kapatmayı reddetti.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X PUT 'https://panel.ornek.com/api/v1/admin/automation/cron-enabled' \
  -H "Authorization: Bearer $API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"enabled":0}'
const res = await fetch('https://panel.ornek.com/api/v1/admin/automation/cron-enabled', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${apiKey}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ enabled: 0 }),
});

const body = await res.json();
$ch = curl_init('https://panel.ornek.com/api/v1/admin/automation/cron-enabled');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST  => 'PUT',
    CURLOPT_HTTPHEADER     => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode(['enabled' => 0]),
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Kapatmak FATURA, YENILEME ve bildirimlerin tamamini durdurur; bakim disinda kullanmayin.
Api::Automation()->ToggleAutomationCron(['enabled' => 0]);
// ... bakim ...
Api::Automation()->ToggleAutomationCron(['enabled' => 1]);

Gizli Anahtarı Yenileme

post/api/v1/admin/automation/cron-secret/regenerate
Automation/RegenerateAutomationCronSecret admin eski adresi bozar

Cron adresindeki gizli anahtarı yeniden üretir ve döndürür.

Gövde —
——Gövde gerekmez, boş gönderin. Bu uç hiçbir alan almaz; yeni anahtarı siz seçemezsiniz.
Dönen alanlar data — 1
secretstringYeni gizli anahtar. Bir daha okunamaz; sunucudaki zamanlanmış çağrıya hemen yazın.
Hatalar 2
config_write_failed422Ayar dosyası yazılamadı.
insufficient_scope403Anahtar gerekli kapsamı taşımıyor.
İstek
curl -X POST 'https://panel.ornek.com/api/v1/admin/automation/cron-secret/regenerate' \
  -H "Authorization: Bearer $API_KEY"
const res = await fetch('https://panel.ornek.com/api/v1/admin/automation/cron-secret/regenerate', {
  method: 'POST',
  headers: { Authorization: `Bearer ${apiKey}` },
});

const { data } = await res.json();
// data.secret yalnizca burada gorunur
$ch = curl_init('https://panel.ornek.com/api/v1/admin/automation/cron-secret/regenerate');
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST           => true,
    CURLOPT_HTTPHEADER     => ['Authorization: Bearer ' . $apiKey],
]);

$body = json_decode(curl_exec($ch), true);
curl_close($ch);
// Yenilemek ESKI cron adresini gecersiz kilar: sunucudaki zamanlanmis cagri guncellenene
// kadar otomasyon calismaz.
$secret = Api::Automation()->RegenerateAutomationCronSecret()['data']['secret'];

Tuzaklar

Genel anahtar her şeyi durdurur

Otomasyonu kapatmak tek bir görevi değil hepsini durdurur: fatura kesilmez, hizmet yenilenmez, askıya alma çalışmaz, bildirim gitmez. Kapalı kaldığı süre boyunca işler kuyrukta birikir ve açıldığında hepsi birden koşmaya başlar. Bakım için kapatıyorsanız süresini kısa tutun.

Yeni gizli anahtar bir kez görünür

Yenileme çağrısı anahtarı yalnız o yanıtta döndürür; ayarlar ucu onu bir daha vermez. Kaydetmeden geçerseniz sunucudaki zamanlanmış çağrıyı güncelleyemezsiniz ve tek çare yeniden yenilemektir. Yanıtı günlüğe yazan bir istemci de anahtarı günlüğe yazar.

Yenilemek eski adresi bozar

Gizli anahtar cron adresinin parçasıdır. Yenilendiği an sunucudaki zamanlanmış çağrı eski adresi kullanmaya devam eder ve reddedilir; otomasyon adres güncellenene kadar durur. Bu sessiz bir kesintidir: ekranda hata çıkmaz, yalnız işler birikmeye başlar.

Çalışma aralığı ağır işleri geciktirir

Aralık, ağır görevlerin yalnız belirli saatlerde çalışmasını sağlar. Dar bir aralık gece işlerinin sabaha yetişmemesine ve kuyruğun her gün biraz daha büyümesine yol açabilir. Aralığı daraltırken panodaki en uzun bekleme süresine bakın; büyüyorsa aralık yetmiyordur.

Saklama süresini kısaltmak geçmişi silmez

Saklama günlerini düşürmek yalnız bundan sonraki temizliğin ölçüsünü değiştirir; eski satırlar temizlik çalışana kadar yerinde durur. Yer açmak için ayarı değiştirip beklemek yerine temizliği ayrıca çalıştırın; önce ön izlemeyle ne gideceğine bakabilirsiniz.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.