Python的一個特性是pickle函數,它允許您存儲任意任意的東西,並將其精確恢復到原始形式。一個常見的用法是採取一個完全實例化的對象,並醃製它以備後用。在我的情況下,我有一個不可序列化的AMQP消息對象,我希望能夠將它存儲在會話存儲中並檢索它,這可以通過pickle實現。主要區別在於我需要在對象上調用方法,我不只是在尋找數據。什麼是Python中的pythons「pickle」相當於
但是這個項目是在nodejs中,它看起來像所有節點的低級庫都必須有一些方法來保存這個對象,以便它可以在Web調用之間保持。
用例是一個網頁拿起一個RabbitMQ消息並顯示從它派生的信息。我不希望在消息被執行之前確認消息。我通常只是將數據保存在會話狀態中,但這不是一種選擇,除非我能以某種方式將它保存爲原始格式。
什麼是「一個AMQP消息對象「?爲什麼它不可序列化?序列化聽起來像是你期望能夠對任何可以稱之爲「消息」的事情做的主要事情之一 - 你應該如何發送它,否則? –
@Karl這不是實際的消息,而是處理消息的類。 AFAIK,函數不能以大多數格式序列化,只能是數據。由於我想稍後調用對象上的.acknowledge()方法,這就是我想要存儲它的原因。 – zenWeasel
存儲對象實例實際上很脆弱,因爲您仍然需要將原始源代碼放在包層次結構的原始位置中,以重新構建它。最好只是醃製數據。對於Node,json似乎是一個自然的選擇。 – Keith