Factorizer/Cluster ERP WikiCluster ERP English
Ana sayfa / Platform

Referans

Önbellek ve varlık damgası

core/cache_versions.py sürüm sayaçları, core/asset_stamp.py varlık damgası ve /app ile /api/v1/_meta HTTP önbelleklemesi.

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 webapp klasö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ı.

Doğrulanan commit 92f8051 · 2026-11-13