【发布时间】:2015-11-25 00:52:22
【问题描述】:
我想为每个帐户保留一份“在线”用户列表。
我在我的应用程序中每五秒轮询一次服务器,告诉它“嘿,这个用户目前在线”
然后我更新所有其他已连接的用户界面以显示“嘿,此用户在线。”
我现在正在处理的问题是,一旦服务器在 x 秒内没有收到“嘿,我在线”通知,我想继续并将它们标记为“离线”。
我正在使用 laravel 并认为事件可能会起作用,也许启动和事件会休眠 10 秒并检查用户上次“签入”的时间戳是否大于 10 秒。但这引发了 Laravel 事件排队的问题?我知道您可以将它们排队,这意味着常规事件只会在同一个服务器请求上运行,而不会按预期工作。
如果我对它们进行 Q 处理,那么只有一个侦听器不会因为所有这些“等待”线程试图重置一个微不足道的“在线”布尔值而使 q 拥塞吗?也许有多个听众?
在某事发生/未发生后,让服务器重置数据库值 x 秒数的最简单方法是什么?
【问题讨论】: