php - 队列异步执行的时候是无法使用SESSION的,那么登录还能使用队列吗?

查看:111
本文介绍了php - 队列异步执行的时候是无法使用SESSION的,那么登录还能使用队列吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

队列异步执行的时候是无法使用SESSION的,那么登录还能使用队列吗?如果能如何处理cookie和session的对应关系?

解决方案

录还能使用队列吗?

登录通常是个同步过程,用队列不是不行,只是会增加复杂性。

同步的登录过程就是读数据库,判断账号密码正确,设置session,能在一个HTTP请求里搞完。

换成异步,我只能想到下面这种方法:

  1. 客户端生成随机token

  2. 客户端把token、账号、密码发给服务器

  3. 服务器在redis中记录这个token还没登录成功

  4. 服务器把把token、账号、密码放到队列处理

  5. 队列处理,如果账号正确,redis中的token标记为成功,否则标记为失败

  6. 客户端在服务器和队列处理的过程中一直用另一个接口轮询看token是否登录成功,成功的话以后的请求都带上token,否则客户端登录失败。

所以应该尽快完成同步的登录过程,把登录后需要的一些操作(发邮件通知等等)放队列,而不是把整个登录过程放队列。

这篇关于php - 队列异步执行的时候是无法使用SESSION的,那么登录还能使用队列吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆