msgpack for queue

This commit is contained in:
simon987 2021-01-20 20:30:57 -05:00
parent c4fca1b754
commit a2cfab55bc
3 changed files with 22 additions and 4 deletions

View File

@ -37,10 +37,12 @@ class VolatileQueue:
self.key = key
def put(self, item):
self.rdb.sadd(self.key, item)
self.rdb.sadd(self.key, umsgpack.dumps(item))
def get(self):
return self.rdb.spop(self.key)
v = self.rdb.spop(self.key)
if v:
return umsgpack.loads(v)
class VolatileBooleanState:

View File

@ -2,7 +2,7 @@ from setuptools import setup
setup(
name="hexlib",
version="1.25",
version="1.26",
description="Misc utility methods",
author="simon987",
author_email="me@simon987.net",

View File

@ -78,4 +78,20 @@ class TestVolatileQueue(TestCase):
s.put("test")
item = s.get()
self.assertTrue(item == b"test")
self.assertTrue(item == "test")
def test_dict(self):
s = VolatileQueue(key="test5")
s.put({"a": 1})
item = s.get()
self.assertTrue(item["a"] == 1)
def test_int(self):
s = VolatileQueue(key="test5")
s.put(123)
item = s.get()
self.assertTrue(item == 123)