货源调度系统

1. 运营人员通过运营后台编辑货源匹配规则,启用后触发货车匹配;

2. 货车匹配:

dispatch_task服务:

    1. 负责规则的增删改查,规则的增删改通过kafka通知dispatch_flow;

    2. goods_match函数负责规则的匹配,复杂的规则拆分成原子规则,每个原子规则通过一个函数实现,例如,同城匹配函数用到redis的geohansh查找货源20km内的司机id;每个函数找到的司机id,通过原子规则之间的逻辑运算符(and / or)进行交集或并集,最终一层层往上得到最终的符合货源的司机id;

dispatch_flow服务

    1. task_detail_reboot_task函数负责项目启动时将规则读取进入内存,货源调度匹配时直接读取内存中的规则;

    2. monitor_task函数负责接收kafka的规则变更消息,规则变更,则修改flow服务的内存中的全局规则变量;

    3. match_goods_task函数负责将匹配任务加载进apscheduler,匹配任务询问dispatch_task获取匹配的司机id;

    4. push_goods_task负责最后的货源推送,依赖于极光推送实现。

扫描二维码关注公众号,回复: 9924908 查看本文章

成就:

  1. 通过新版调度,提高了车货匹配的效率,主动地为司机推送很多适配的货源,提高司机的赚钱效率;
  2. 同时,为运营提供了一个可以配置调度规则的调度系统,能更精细化地运营用户的车货匹配;
发布了26 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/simuLeo/article/details/104513067