簡體   English   中英

從Memcached檢索的對象的調用方法

[英]Call methods for objects retrived from Memcached

在同一台計算機上的兩個python進程之間需要共享一些對象時,我使用python memcached將對象存儲在一個進程中,並在另一個進程中使用它們。 但是,即使可以在想要使用它們的過程中對其進行檢索,調用它們的方法也不會返回任何結果(不是預期的結果)。

應該有人提供必要的輸入嗎,在這種描述的情況下會發生什么-對象是否完全傳遞了並且兩個進程都共享它的狀態? ,或者僅傳遞一個副本,而在一個進程中進行的更改在另一個進程中不可見-可以采用哪些其他技術/庫來實現python進程之間的共享對象。

謝謝

Memcached存儲字符串值,而不存儲您描述的豐富對象。

您所描述的內容聽起來像是發布者-訂閱者應用程序-一個進程生成數據,另一個進程對其進行操作。

Memcached不是發布/訂閱的正確工具。 您需要一個可以自動添加和彈出的列表。 雖然您可以在Memcached中存儲列表的字符串表示形式,但是不能在進程之間原子地從該列表中添加和刪除元素。

看看Redis 它具有豐富的數據結構,非常適合發布/訂閱和成熟的Python客戶端使用。

對於一個簡單的實現,您可以讓一個進程將( LPUSH )數據添加到列表中。 另一個進程可能會從該列表中彈出( RPOP )數據,並在其上運行一個方法。 這將為您提供一個良好的IPC隊列,並且可以很好地擴展。

如果您需要更多的技巧,請查看Redis pub / sub文檔 -它具有消息傳遞系統,無需輪詢隊列以獲取新值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM