【问题标题】:will my data collide?我的数据会发生冲突吗?
【发布时间】:2013-08-24 07:00:03
【问题描述】:

我将数据发布到远程 php 文件,然后使用 post 方法将数据保存到远程 mysql 数据库,非常简单。

但我担心的是每 30 秒到 1 分钟获取一次数据,并通过来自 android 手机的 http 帖子(即来自“N”台手机)发送到服务器,所以,数据会发生冲突吗?有没有可能丢失数据?例如:来自 100mobiles

目前正在使用 000webhost.com 免费托管,我打算转用付费托管。

但是我需要缓冲所有传入的数据然后保存会避免数据丢失吗?还是继续我的相同方法并拥有高速服务器?

我对服务器可以处理传入数据的最大速度知之甚少。如果许多数据同时来自许多手机怎么办?我需要手动缓冲还是服务器为我做。

如果手动缓冲,请分享一些代码,以便我更好地理解。 (Android 手机的电池我已经照顾并正在使用 gps 和网络提供商)

<?php

$longitude = $_POST['lon'];
$latitude= $_POST['lat'];
$imei= $_POST['imei'];
$speed = $_POST['sp'];
$date = $_POST['date'];
if($longitude != "" && $latitude != "")
{
$mysql_host = "xxx";
$mysql_database = "xxx";
$mysql_user = "xxx";
$mysql_password = "xxx";

$con=mysql_connect($mysql_host,$mysql_user,$mysql_password ) OR DIE ("Unable to select db".mysql_error());

if($con)
{

    mysql_select_db($mysql_database);

        //check if imei number already exists

        $sql="select emp_name from mob_reg where imei='$imei'";
        $result=mysql_query($sql);

        if((mysql_num_rows($result))== 0)
        {
            echo "invalid";

        }
         else
        {
     $sql="insert into details(imei,lon,lat,speed,date) values('$imei','$longitude','$latitude','$speed','$date');";
     mysql_query($sql) or die("couldnt insert");
        }


}
else{
    echo 'invalid';
}
}
?>

【问题讨论】:

  • 你总是需要缓冲,即使你的站点没有宕机,也有可能是网络宕机了。此外,当您进行升级时,最好不必计算升级所花费的秒数而不会丢失数据。
  • 你说的是手机网络吗?如果是,那么如果互联网不可用,则将其存储在数据库中,然后在网络可用时发送。

标签: php android mysql web-services http-post


【解决方案1】:

我认为您无需担心代码中的缓冲问题。 您的代码应尽可能高效地处理每个请求。

您的基础设施应根据您预期的流量进行设置。

如果您的服务将非常繁忙,那么您可以考虑负载平衡(让多个网络服务器和/或数据库服务器处理传入请求,具体取决于瓶颈所在)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-10
    • 2021-08-28
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    • 1970-01-01
    • 2023-03-19
    • 2015-05-27
    相关资源
    最近更新 更多