我的目标是要制作一个php文件,该文件每分钟最多可处理来自ajax的10000个帖子。我想了解一下我的方法是否不错,或者是否有更好的方法来处理这么多帖子请求。我可以想到我的代码有很多问题。
JavaScript积极地订阅了将信息发送到我的javascript的流媒体,然后我要从那里将发布数据发送到php文件,该文件首先将数据放入数组,其次是每分钟,将收集的信息发送到mysql表。
所以我必须确定几件事。首先,ajax函数仅使用php文件的相同实例,而不运行多个实例。这将确保所有数据进入mysql transferrence的同一php数组。另外,该数据信息不会混乱,因此我必须以某种实际有效的方式在php中标识我的数据变量。第三,因为我使用的是while循环,所以一旦实例化,我必须有一种成功的方法来关闭循环。
这是我的js:
subscription.addListener
(
onItemUpdate: function (updateInfo)
{
// Lightstreamer published some data
var epic = updateInfo.getItemName().split(":")[1];
updateInfo.forEachField
(
function (fieldName, fieldPos, value) //foreach epic
{
$.ajax
(
{
data:
{
epic: epic,
fieldName: fieldName,
price: value
},
type: 'POST',
url: 'compiler_and_send_to_mysqli.php',
success: function(data)
{
alert(data);
}
}
);
}
)
}
);
这是我的php:
$i = 0
if(isset($_POST['data']))
{
$i = $i + 1;
$data[$i] = $_POST['data'];
}
if (empty($current_time)) //set the original time for the while loop
{
// get current date time initally keep the php instance running
// continuously (until the seesion closes?) in format: '2018:09:12-12:11:20';
}
while($current_time != '2099:01:01-01:01:01') //keeps php loop running for more ajax posts.
{
$hour = date('s');
if($hour == '00') // tests each minute, limits loop to 1 minute
{
$array[$set_for_mysqli] = $array_[$inserting_into];
$array_[$inserting_into] = array(); //empty array
// insert $array[$set_for_mysqli]; in mysqli dbase
$array[$set_for_mysqli]; = array(); //empty array
// break loop
}
else
{
// insert $data[$i] from ajax post in to php $array_[$inserting_into];
$data[$i] = unset($data[$i]);
}
}
我的问题是:
谢谢。