V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
c466934322
V2EX  ›  PHP

微信公众号多客服接口如何保证消息发送的先后顺序?

  •  
  •   c466934322 · 2018-04-09 14:11:31 +08:00 · 3214 次点击
    这是一个创建于 2412 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用户在微信公众号操作之后,公众号内调用多客服接口+被动回复接口回复客户,但是老是存在一个发送顺序错乱的问题,大多数情况下,顺序都会按照程序执行的顺序执行完成,但是极少数情况下,程序执行完之后,多客服接口和消息被动回复接口的顺序没有按照我的程序要求的接口先后顺序来发送,如何规避?

    7 条回复    2018-04-13 17:50:57 +08:00
    b821025551b
        1
    b821025551b  
       2018-04-09 14:14:06 +08:00
    sleep(5)
    liuzhedash
        2
    liuzhedash  
       2018-04-09 15:14:58 +08:00
    @b821025551b #1
    补充一下:
    最好先 fastcgi_finish_request 再 sleep
    c466934322
        3
    c466934322  
    OP
       2018-04-09 16:12:03 +08:00
    @b821025551b
    @liuzhedash
    你们都是用 sleep ?我总感觉这个有点太那啥了,我觉得在大量用户同时活跃的场景下,cpu 能否扛的住?再者,如果 sleep 的话,php 脚本最大执行时间是不是也要改?
    c466934322
        4
    c466934322  
    OP
       2018-04-09 16:12:39 +08:00
    是不是会存在这个问题: https://www.zhihu.com/question/30563257
    liuzhedash
        5
    liuzhedash  
       2018-04-09 16:23:17 +08:00
    @c466934322 #3
    1、php 默认的最大执行时间应该是 30 秒,实际的执行时间很难超过 10 秒(超过 5 秒其实就感觉比较卡了),再加上几秒影响也不大,我印象中 sleep(2)就已经有显著效果了
    2、sleep 显然不会影响数据库的处理速度,不够就扩容 php 这一侧的服务器呗
    TJT
        6
    TJT  
       2018-04-10 00:25:12 +08:00
    消息队列,不要用被动回复用主动回复,最 robust 的方案了。简单点就 sleep 咯。
    onedayonecode
        7
    onedayonecode  
       2018-04-13 17:50:57 +08:00 via Android
    我也遇到过这种问题,一次要推送两条图文,一个是被动回复,一个是客服消息,被动回复代码写在前面,推送的顺序还是在后面,然后我就把两个都改成了客服消息... ok 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1350 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 17:57 · PVG 01:57 · LAX 09:57 · JFK 12:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.