suchen

Heim  >  Fragen und Antworten  >  Hauptteil

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

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

怪我咯怪我咯2755 Tage vor363

Antworte allen(1)Ich werde antworten

  • 怪我咯

    怪我咯2017-05-16 13:07:36

    录还能使用队列吗?

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

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

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

    1. 客户端生成随机token

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

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

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

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

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

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

    Antwort
    0
  • StornierenAntwort