Bu sayfa platform çekirdeğinin önbellek mekanizmalarını listeler: süreç içi önbelleklerin diğer işçilerin yazımlarını fark etmesini sağlayan sürüm sayaçları, web uygulaması dosyalarını bir yıl önbelleğe alınabilir kılan varlık damgası ve server/app.py'nin koyduğu HTTP önbellek başlıkları. Damganın istemci tarafı kullanımı web uygulamasına genel bakış sayfasında belgelenir.
Kapsam ve kaynak¶
- Tanımlandığı yer:
src/cluster_erp/core/cache_versions.py,src/cluster_erp/core/asset_stamp.py,src/cluster_erp/server/app.py(statik bağlamalar ve/api/v1/_meta) - Sayı: 2 önbellek ailesi; 2 statik bağlama; 1 önbelleğe alınmış metadata belgesi
Önbellek sürüm sayaçları¶
core_cache_versions tablosu her önbellek ailesi için version sayaçlı bir satır taşır (src/cluster_erp/core/cache_versions.py:25, src/cluster_erp/core/cache_versions.py:39-43). perf01 göçünden gelen ifade düzeyi tetikleyiciler, ailenin tablolarındaki her ekleme, güncelleme, silme veya kesmede sayacı artırır (src/cluster_erp/core/cache_versions.py:12-16, migrations/versions/perf01_cache_versions.py).
| Aile | Onu değiştiren tablolar | Okuyan | Kaynak |
|---|---|---|---|
auth |
auth_roles, auth_role_permissions, auth_user_roles, auth_abac_policies, auth_permissions |
src/cluster_erp/modules/auth/auth_cache.py:69-77 |
src/cluster_erp/core/cache_versions.py:28-36 |
entitlement |
app_store_installs, app_store_licenses |
src/cluster_erp/server/entitlements.py:68-77 |
src/cluster_erp/core/cache_versions.py:36 |
version_statement(family), SELECT version FROM core_cache_versions WHERE name = :family döndürür ve bilinmeyen bir aile için ValueError yükseltir (src/cluster_erp/core/cache_versions.py:46-51). Modül belge dizgisi nedeni belirtir: önceki damga, korunan her istekte her tablonun en son updated_at değerini ve satır sayısını okuyordu ve sayım tam taramadır; tek bir birincil anahtar araması her tablo boyutunda aynı maliyettedir (src/cluster_erp/core/cache_versions.py:1-17). Yetkilendirme önbelleğinin ömrü auth_cache_seconds ayarıdır (src/cluster_erp/config/settings.py:317-320, src/cluster_erp/server/app.py:1308-1310).
Varlık damgası¶
asset_stamp(root), root altındaki her dosyanın göreli yolu, boyutu ve değişiklik zamanı üzerinde sıralı olarak yürünen bir SHA-256 özetinin ilk 16 onaltılık karakterini döndürür (src/cluster_erp/core/asset_stamp.py:30-42). Sonuç bir saniye boyunca bellekte tutulur (src/cluster_erp/core/asset_stamp.py:26, src/cluster_erp/core/asset_stamp.py:45-54). PLACEHOLDER, __ASSET_STAMP__'tır (src/cluster_erp/core/asset_stamp.py:25).
webapp/index.html dosyalarını ./v/__ASSET_STAMP__/ altında bağlar. Uygulama sunucusu yer tutucuyu hesaplanan damgayla değiştirir; bir düğümde dosyaları nginx sunar ve damga sürüm etiketidir (src/cluster_erp/core/asset_stamp.py:3-10). Bkz. ters vekil.
Sunucudaki HTTP önbelleklemesi¶
| Yol | Cache-Control | Doğrulama | Kaynak |
|---|---|---|---|
/app/ ve /app/index.html |
no-cache |
Damgası doldurulmuş gövdenin ETag'i; If-None-Match 304 yanıtı verir |
src/cluster_erp/server/app.py:1591-1597, src/cluster_erp/server/app.py:1616-1625 |
/app/ altındaki diğer dosyalar |
no-cache |
Starlette'in statik dosya doğrulaması | src/cluster_erp/server/app.py:1591-1597 |
/app/v/<current stamp>/<file> |
public, max-age=31536000, immutable |
gerekmez | src/cluster_erp/server/app.py:1599-1614 |
/app/v/<old stamp>/<file> |
no-cache |
Starlette'in statik dosya doğrulaması | src/cluster_erp/server/app.py:1610-1613 |
/api/v1/_meta |
private, no-cache |
Gösterim başına ETag (identity ve gzip); If-None-Match 304 yanıtı verir |
src/cluster_erp/server/app.py:1518-1556, src/cluster_erp/server/app.py:1102-1108 |
Metadata belgesi süreç başına bir kez oluşturulur ve önceden sıkıştırılmış bir gzip biçimiyle birlikte app.state._meta_cache üzerinde tutulur (src/cluster_erp/server/app.py:1530-1543). Yazı tiplerinin her platformda yazı tipi olarak sunulması için font/woff2 ve font/woff MIME türleri kaydedilir (src/cluster_erp/server/app.py:1626-1631).
Kısıtlar ve doğrulama¶
- Dosya yolu olmadan
/app/v/<stamp>isteği 404 yanıtı alır (src/cluster_erp/server/app.py:1606-1608). - Web uygulaması yalnızca paketin yanında
webappklasörü varsa bağlanır (src/cluster_erp/server/app.py:1633-1644). - Metadata önbelleği süreç süresince yaşar; bir metadata değişikliği yeniden başlatmadan sonra etkili olur (
src/cluster_erp/server/app.py:1523-1525).
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| asset stamp | asset_stamp |
Gönderilen dosyalar değiştiğinde değişen, web uygulamasının varlık adreslerindeki kısa belirteç; sunucu onu dosyaların özeti olarak hesaplar, nginx ise sürüm etiketini alır. | varlık damgası | src/cluster_erp/core/asset_stamp.py:45 |
| cache family | FAMILIES |
Yazımları bir süreç içi önbelleği geçersiz kılan adlandırılmış tablo grubu. | önbellek ailesi | src/cluster_erp/core/cache_versions.py:28 |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.