我正在用 Tornado 开发一个推送系统。由于我正在进行长时间的轮询,我需要保留一个未来对象列表,以便稍后为它们设置结果。然后我想将 Future 列表保留在 Redis 中,所以我用 Pickle 模块“转储”每个 Future 并将其设置为 Redis,但是在我从 Redis 获取它之后,并“加载”它。我发现它不是原始的未来对象,当我在这个未来对象上调用 set_result 函数时,它并没有像我预期的那样工作。
任何人都可以帮助我吗?
这是我的代码的一部分:
@singleton
class MessageProxy:
def register_subscriber(self, subscriber):
r.set("subscriber", pickle.dumps(subscriber))
def send_message(self, message):
subscriber = pickle.loads(r.get("subscriber"))
subscriber.set_result(message.content)