按会话 ID 添加到 Laravel 会话


Add to Laravel session by Session Id?

我试图通过使用Laravel SessionId向Laravel Session添加一些变量。原因是我正在尝试从远程源(队列作业)更新会话数据,并让客户端能够使用 AJAX get 请求检索此数据。作业可以运行几分钟或几小时,所以我需要一种方法来相应地更新客户端。

这个想法是我将Laravel SessionId(通过Session::getId())发送到作业,作业通过sessionId查找会话并将属性动态推送到会话,而客户端通过AJAX长轮询到主服务器上的路由,该路由返回作业推送到会话的属性,然后删除刚刚刷新到客户端的所有属性。

如果有帮助,我还在 Amazon ElastiCache 上使用 Redis 集群驱动程序。

从我目前所看到的情况来看,访问会话的唯一方法是使用 Session 外观,这是一个静态类,我基本上正在寻找诸如 $session = SessionAccessor::findSessionById($sessionId) 之类的东西或类似的东西。

这在拉拉维尔可能吗?

我不相信你想为此使用会话。如果会话在排队的作业等之前结束,会发生什么情况。会话 ID 可以在作业期间更改等。

我要做的是制作一个jobs表或其他东西 - 并拥有登录的用户 ID 和作业 ID,以及"状态"。然后,排队的作业只是在完成后更新数据库表。

同时,您的 AJAX 轮询会命中检查数据库最新状态的路由。