Repository navigation
Hot Reload
English · Türkçe · Languages / Diller
Kapsam: JSON API Forge 0.5.1 · İnceleme: 17 Eylül 2026 · Dil: Türkçe
v0.5.1 JSON değişikliklerini ASGI listener'ını kapatmadan uygular. Yeni route/runtime adayı hazırlanır; geçerliyse aktif nesil atomik değiştirilir. Değişmeyen projelerin servisleri korunur.
| Değişiklik | Uygulama yolu |
|---|---|
| App ekleme/silme/disable, manifest/config JSON | Debounced JSON reload |
| Proje JSON'larında kullanılan env değerleri | App yeniden yükleme sırasında tekrar okunur |
| Global process ayarı | Worker yeniden başlatılmalı |
| Python hook kodu | Ayrı Python reloader veya kontrollü restart |
| Data/media/database dosyası | Yapılandırma watcher kapsamı dışında |
Varsayılan polling 1 saniye, debounce 0.5 saniyedir. Ayarlar APPS_AUTO_RELOAD, APPS_RELOAD_INTERVAL_SECONDS, APPS_RELOAD_DEBOUNCE_SECONDS olarak verilir. JSON dosyası 2 MiB, uygulama başına fragment 256 ile sınırlıdır.
Bozuk JSON, geçersiz yapılandırma veya runtime startup hatası etkilenmiş uygulamanın son geçerli sürümünü korur. Diğer geçerli app değişiklikleri devam edebilir. İlk açılışta son geçerli sürüm yoksa app kullanılamaz. Prefix/slug ownership çakışmasında klasör sırasına göre rastgele kazanan seçilmez; çakışan app'ler karantinaya alınır.
Eski HTTP istekleri, stream'ler ve WebSocket'ler eski nesilde tamamlanabilir. En fazla iki eski nesil drain durumunda tutulur; uzun yaşayan bağlantılar bunları meşgul ederse sonraki reload bekleyebilir. Dağıtımın "anında herkes yeni koda geçti" garantisi yoktur.
forge dev --no-reload Python worker restart reloader'ını kapatır. JSON reload'u kapatmak için ayrıca APPS_AUTO_RELOAD=false gerekir. Bu iki mekanizmayı aynı ayar sanmayın.
Tam dosyayı geçici dosyaya yazıp atomik rename/publish edin. Editör remote save zaten staging + tam proje doğrulaması + revision + kilit + atomik replacement yolunu kullanır. Sadece graph metadata'sını kaydetmek runtime operation'ını kendiliğinden değiştirmenin yerini tutmaz.
Çok worker kurulumda her worker dosyaları ayrı izler. Eşzamanlı geçiş şartsa kontrollü rollout/restart yapın. İzolasyon global identity DB, süreç ölümü veya güvenilmeyen Python kodunu kapsamaz; bunlar ayrı süreç/container sınırları gerektirir.
Bu sayfa aşağıdaki sabit commitlerdeki davranışı açıklar. Yeni bir sürümde aynı davranışın sürdüğünü varsaymayın.
main/framework/reload.pymain/framework/config.pymain/docs/44-Development-Reload-and-App-Isolation.md