0

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

问题是:驱动程序需要每 2 秒更新一次他们的位置。客户每 2 秒实时拉出所有最近的司机。它会导致数据库查询性能不佳。我使用 PostgreSQL 的 cube & earthdistance 扩展来计算最近的。

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

4

1 回答 1

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 );
});

结合deepstream与之集成的 RethinkDBs 地理空间查询可能是一个可扩展的解决方案。

这是一个示例 repo演示了这一点

于 2016-09-22T10:12:40.790 回答