我们正在开发一个Web应用程序,其中大约有50%的写入请求,我们最终将数据推送到多个数据存储,并在这些数据存储中插入和更新大量记录.为了缩短响应时间,我们希望在后台异步处理此类请求.
我们的Web应用程序是用Ruby on Rails编写的.
我倾向于两种解决方案是Resque和Gearman.
Resque:更多信息:http: //github.com/blog/542-introducing-resque Resque似乎非常适合Ruby,它特别适用于后台作业处理."后台作业可以是响应执行的任何Ruby类或模块.您现有的类可以轻松转换为后台作业,或者您可以专门创建新类来完成工作."
Gearman:它并不仅仅适用于异步处理的后台作业,但这绝对可以做到.显然更加强大,或者看起来如此.Gearman的另一个优点是,虽然您的客户端代码可能在Ruby中,但工作人员代码可能就在PHP中.虽然现在我们完全是Ruby on Rails应用程序,谁知道将来我们是否可能想要使用PHP或其他东西,具体取决于手头的工作.
你会推荐什么?你有两个经验吗?在两者之间进行选择时,我应该记住哪些现实生产中的挑战?我甚至在这里比较苹果和苹果吗?
为了计算纬度/经度所代表的最近位置,我正在考虑将地图划分为小网格,大约100x100米网格.基本上每个点都将分配给一个网格.
据我所知,我也可以使用MySQL等空间索引,但我计划使用像Cassandra这样的非关系型数据库,因为很难对空间对象进行索引,因此某种网格近似技术可能很简洁.
创建这样一个网格系统并将二维空间位置映射到它的最佳方法是什么?
编辑1:如果网格不完全均匀,那么可能没什么问题.
asynchronous ×1
gearman ×1
geolocation ×1
geospatial ×1
grid ×1
maps ×1
redis ×1
resque ×1
spatial ×1