客户端不是http浏览器。大哥有没有仔细看?客户端就是我自己写的插件

解决方案 »

  1.   

    基于lz目前的规则,好像是没啥办法1 如果指令执行失败,客户端通知服务端失败消息
    或者 2 指令重复下发多次,如果客户端a返回成功,则服务端通知客户端b放弃该条指令
      

  2.   

    客户端请求服务器端--> 服务器检索在执行时间在当前时间以前的指令集合--> 服务器端给客户端一组指令--> 服务器删除该组指令--> 客户端执行指令 就用你这个流程,再改改:服务器返回给客户端指令时,不删除,只是做一个标记,标明已经被取走,最好用一个唯一ID标志。如果收到客户端执行正确的消息,再删除(当然你也可以不做真正的删除,因为历史是可以当镜子的嘛,)或做另外的标志。
    当然,客户端不是不返回执行错误的消息吗?那么你就设置一个指令被取走的时间,当下一个客户端来取指令时,检查时间有没有超时(从你的逻辑来看应该是指令执行时间再加一个小时)。当然,最好做一个有返回错误信息的客户端。在整个过程当中,一定要注意数据更新(主要是指令记录)时一定要加锁,因为这是异步程序了,PHP这一方面比较差,所以可以借助文件(PHP有文件锁)或者数据库(理论上可以)。