Python Firebase未读消息流

2024-04-25 23:05:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题,部分与firebase有关。我目前使用的是支持流的混合python firebase库。 我目前在/unread_messages/上有一个流,所以每次在firebase中放置一条未读消息,unread_message_handler()都会做一些事情。在

stream = FIREBASE.child('/unread_messages/').stream(unread_message_handler)

以及处理者

^{pr2}$

问题是:我不想在放置未读邮件时直接发送通知。我想等10秒,看看那个特定的消息是否还在/unread_messages/中,如果是,发送一个通知。在

直接发送它很简单,它已经在做了,但是我不确定如何等待10秒,因为流只在新操作上调用处理程序,而我一直想检查时间戳

编辑 我正在使用this库进行流式处理


Tags: child消息处理程序编辑messagestream时间邮件
2条回答

当您调用stream()时,您使用的库生成一个Python线程,这里:https://github.com/thisbejim/Pyrebase/blob/master/pyrebase/pyrebase.py#L288

然后该线程调用回调。从您的问题中不清楚您的主线程在调用stream()之后会做什么,但基本上您可以做的是设置一个计时器,在流线程中收到每条消息后10秒唤醒您的主线程,或者每隔10秒在主线程中轮询一次。在

timestamp值放入消息数据怎么样。然后,当添加消息时,您可以使用它的timestamp来读取它,并使用timestamp10 seconds delayed call设置为另一个函数,如果消息仍然未读,该函数将检入Firebase数据库。在

相关问题 更多 >