延迟执行的,PHP最优解决方案

讲一下我们公司的业务吧。

我们公司是当前市面上最火热,最热辣的O2O。为了解决这一块问题,我们公司针对附近3.5KM的任务来进行派活。如果5分钟内,有附件的商家在接活这个活就是商家的。

如果附件的商家没有接活呢?这样用户体验不就很不好吗?所以说,我们有专门的派单的业务员。只要5分钟没人接的活,会有专门的跑腿 业务员来完成对应的工作。

所以,转换成技术语言就变成这样了:

用户派出一个活,通过IM(即时通信)系统发给商家。如果这个活被人接了,接单请求给到API。进入至交易状态。

如果这个活没有被人接,用户也没有给出反馈,怎么办?难道用线程去解决。如果中间服务器挂了呢?所以这种方案不可考。

我们想了几套不同的实线方案:

1,自己写时间服务器,缺点周期长,不好维护不同的一致性hash

2,用zookeeper来维护一致性,做好时间服务器,在指定时间后执行指定的脚本。

3,用redis 配合python或者lua来实现

4,有没有分布式的延迟队列系统

最后的讨论结果如下:

1,自己写服务器方案这个项目周期太短,方案1和方案2淘汰【淘汰】

2,用redis配合python或者是lua来实现的话效率太低【淘汰】

3,最后我们选择了aliyun的MQS,具有分布式和延迟通知的特点。当然你不想花钱的话,也可以自己架具有延迟、分布式功能的队列服务【选择】

最终实现的过程:

1,用户派单后,向队列中写入一个任务,将队列中延迟执行设为5分钟

2,商家接单了,反向通知API,将队列中的延迟任务删除

3,如果商家没有接单,到达5分钟客户端就自然结束显示

4,服务器端到达了5分钟,开始执行延时队列里面的任务,向自己公司的派单元派单,并且在客户界面中推送接单成功的消息。

完美解决。

PHP学院网友投稿,转载请注明来源。http://www.phpxy.com

原文发布于微信公众号 - php(phpdaily)

原文发表时间:2016-06-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏性能与架构

Facebook 迁移 Messenger 底层存储的过程

Facebook Messenger 用户超10亿,可以即时分享文字、图片、视频,产品自身不断的发展,背后的系统也在不断改变,开始是一个单体服务,后来变为有专门...

491
来自专栏媒矿工厂

视频传输延迟分析及解决方案:CMAF、LHLS

使用在线流媒体平台做直播时,实时体验至关重要:看世界杯时,您还边正在聚精会神地盯着C罗的金刚腿等着罚球,隔壁老王就传出进球欢呼声,您肯定无比郁闷。视频播放领域的...

4494
来自专栏韩伟的专栏

经典游戏服务器端架构概述 (2)

现代电子游戏,基本上都会使用一定的网络功能。从验证正版,到多人交互等等,都需要架设一些专用的服务器,以及编写在服务器上的程序。因此,游戏服务器端软件的架构,本质...

2.2K0
来自专栏韩伟的专栏

经典游戏服务器端架构概述(下)

经典游戏服务器端架构概述(下) 今天将详细说明全服分线模型和全服全线模型,正文如下: 1全服分线模型 一、模型描述 由于多进程服务器模型的发展,游戏开发者...

3655
来自专栏腾讯大讲堂的专栏

一秒钟法则

在2014年4月11日的腾讯分享日活动上, 来自腾讯MIG的移动互联网事业群运营总监/T4专家,负责运营QQ手机浏览器、腾讯PC浏览器、腾讯手机安全管家、腾讯...

1879
来自专栏zhisheng

大型网站架构演化历程

大型网站的挑战主要来自庞大的用户,高并发的访问和海量数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得棘手。大型网站架构主要就是解...

1.2K35
来自专栏逸鹏说道

.Net 分布式云平台基础服务建设说明概要

.Net 分布式云平台基础服务建设说明概要 1) 背景 建设云平台的基础框架,用于支持各类云服务的业务的构建及发展。 2) 基础服务 根据目前对业务的理解和...

3198
来自专栏IT大咖说

一文通晓私有云构建之道

摘要 服务化在云计算中是非常重要的部分,所有组件以服务的方式去提供,而很多企业的数据库都还在构建当中。今天聊的就是私有云数据库构建的过程。如果大家有这方面的打算...

3386
来自专栏云计算D1net

谷歌备份互联网和海量数据的经验

雷蒙布卢姆(Raymond Blum)领导着一支站点可靠性工程师团队,主要负责谷歌数据的保密性和安全性。当然,谷歌永远也不会透露那些数据的总量是多少,但是...

4089
来自专栏SDNLAB

边缘计算工作负载:虚拟机,容器还是裸机?

我们生活在一个连接和智能设备的时代。随着智能设备数量的增长,数据的增长迅速达到了新的高度。这些数据从终端用户到达云或数据中心后再进行处理、存储和其他分析操作,因...

974

扫码关注云+社区