我试图通过使用Laravel SessionId将一些变量添加到Laravel会话中。这样做的原因是我尝试从远程源(队列作业)更新会话数据,并让客户端能够使用AJAX get请求检索此数据。这项工作可以运行几分钟或几小时,所以我需要一种方法来相应地更新客户端。
我的想法是将Laravel SessionId(通过Session::getId()
)发送到作业,作业通过sessionId查找会话并动态地将属性推送到会话,而客户端通过AJAX轮询到一个路径在主服务器上,返回作业推送到会话的属性,然后删除刚刚刷新到客户端的所有属性。
如果有帮助,我还会在Amazon ElastiCache上使用Redis群集驱动程序。
从我到目前为止看到的,访问会话的唯一方法是使用Session
外观,这是一个静态类,我基本上寻找像{ {1}}或类似的东西。
Laravel有可能吗?
答案 0 :(得分:1)
我不相信你想要使用会话。如果会话在排队的作业等之前结束会发生什么。会话ID可以在作业等期间更改。
我要做的是制作jobs
表或其他东西 - 并记录用户ID和作业ID以及“状态”。然后排队的作业只在完成时更新数据库表。
与此同时,您的AJAX民意调查会检查一条路径,检查数据库是否为最新状态。