Golang 开发新手的一个问题

2022-07-25 17:16:24 +08:00
 TimeSea
楼主的本科生,接到老师派的一个任务,用 golang 写一个分布式的后端。之前从来没接触过类似的开发任务,感觉有些棘手,想问 v 友们一个问题:



目前主要任务是给外卖员派单,那就需要从数据库里面取出来外卖员的数据,然后再从数据库里面取出来订单的数据,根据这些数据来给外卖员派单。开始的想法是把这些数据都加载到内存中遍历,但在数据量大的时候显然行不通。问老师,老师说可以用一个 active list ,要有一个 buffer ,但也是挺笼统的,不知所云。想问问 v 友有没有啥好的解决办法
2184 次点击
所在节点    程序员
22 条回复
TimeSea
2022-07-25 22:21:01 +08:00
@SenLief 有道理哎,我试一下,非常感谢!
harmless
2022-07-26 03:59:28 +08:00
订单和外卖员都有坐标属性(x,y),假设订单的坐标是(x1,y1), 外卖员的坐标是(x2,y2)。要找最近的外卖员时,可以预先定义一个可接受的最大距离,根据这个距离算出外卖员坐标与订单坐标的最大差值 n ,然后就可以去数据库里直接查坐标在 x1-n<x2<x1+n && y1-n<y2<y1+n 范围内的所有外卖员,最后再计算一次查出的所有外卖员与订单的距离,取最短的就好了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/868601

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX