在实时应用中获取最近位置的性能问题

时间:2015-07-21 07:36:22

标签: postgresql cube earthdistance

目前,我正在开展像优步这样的项目。这意味着有两个应用程序:一个用于驱动程序,一个用于客户。

问题是:驱动程序需要每2秒更新一次位置。并且客户每2秒钟将所有最近的司机拉到实时。它会导致数据库查询性能下降。我用的是立方体和PostgreSQL的地球延伸扩展用于计算最近的。

有谁能告诉我解决这个问题的最佳方法是什么?非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以使用deepstream.io进行实时数据提交,例如:来自Android

public void onLocationChanged(Location location) {
  // get the record
  Record record = client.record.getRecord( "driver/14" );
  // any kind of data path works
  record.set( "position.x", location.getLongitude() );
  //as well as any kind of serializable datatype
  record.set( "position.y", location.getLatitude() );
}

到JavaScript

// get the record
var driver = client.record.getRecord( 'driver/14' );

// subscribe to any changes within position
driver.subscribe( 'position', function( position ){
  updateMarker( position.x, position.y );
});

结合例如深度与此集成的RethinkDBs geospacial queries可能是一种可扩展的解决方案。

Here's an example repo展示了这个