4
在plone.recipe.zope2instance中有一個選項,稱爲zodb-temporary-storage
,用於取代Zope的默認臨時存儲定義。ZODB臨時存儲的使用
什麼時候推薦?什麼是好處和壞處?
在plone.recipe.zope2instance中有一個選項,稱爲zodb-temporary-storage
,用於取代Zope的默認臨時存儲定義。ZODB臨時存儲的使用
什麼時候推薦?什麼是好處和壞處?
缺省情況下的配方包括temporary storage service存儲會話數據:
臨時文件夾是被用於暫時存儲對象的Zope文件夾。臨時文件夾幾乎完全像普通文件夾一樣具有兩種顯着差異:
- 當您重新啓動Zope時,包含在臨時文件夾中的所有內容都會消失。 (臨時文件夾的內容存儲在RAM中)。
- 您無法撤消對存儲在臨時文件夾中的對象採取的操作。
這是偉大的高揮發性會話數據,但如果你是在一個集羣中運行的Zope,你可能要交換出去的東西,共享數據跨集羣,例如存儲。
使用的默認配置是:
<zodb_db temporary>
# Temporary storage database (for sessions)
<temporarystorage>
name temporary storage for sessioning
</temporarystorage>
mount-point /temp_folder
container-class Products.TemporaryFolder.TemporaryContainer
</zodb_db>
其與缺省session management setup for Zope對應。
我一直避免使用Zope的會話,因爲它們很容易成爲瓶頸(臨時存儲上的衝突負載),而是選擇將所有內容都存儲在cookie中。如果你真的需要服務器端會話存儲,使用Beaker(通過collective.beaker
可能是一個更好的選擇。
更妙的是,使用Products.BeakerSessionDataManager
到默認的Zope會話管理器換出一個由燒杯支持。
所以,更好的不要使用這個選項,對吧? – hvelarde
@hvelarde:除非你有特殊的需要把它換掉 –
你可能想提一下https://pypi.python.org/pypi/Products.BeakerSessionDataManager它提供了一個嵌入式使用collective.beaker替換標準Zope會話 –