| 12345678910111213141516171819202122 |
- import json
- import pytz
- import resource
- from redis.asyncio import Redis
- from datetime import datetime, timedelta
- def redis_qpush(redis_client, qname: str, data: dict, max_len: int = 30):
- """向队列右侧推入数据,并限制队列最大长度"""
- data_string = json.dumps(data)
- pipe = redis_client.pipeline()
- pipe.rpush(qname, data_string)
- pipe.ltrim(qname, -max_len, -1) # 只保留右侧 max_len 个元素
- pipe.execute()
- def redis_qpop(redis_client, qname:str, timeout: int = 5):
- message = redis_client.blpop(qname, timeout=timeout)
- if message is None:
- return None # 队列为空,直接返回
- message_string = message[1]
- data = json.loads(message_string)
- return data
|