我正在尝试让“机器人”进行一些数据处理,但无法弄清楚如何运行同一个文件两次,并加快了同一文件的多个进程的处理速度。
我的代码:
while($stop != 1){
$result = $mysqli->query("SELECT * FROM `data` WHERE `state` = 'nothing' ORDER BY `id` DESC");
$row = $result->fetch_assoc();
if(empty($row)){
echo $i." stop";
$stop = 1;
}else{
echo "do ".$i."<br/>";
$mysqli->query("UPDATE `data` SET `state` = 'done' WHERE `id` = '{$row['id']}'");
}
$i++;
}
非常简单,对吧?
文件继续,直到数据库中不再有state
='nothing',并且它可以正常处理一个文件......
就像:
do 1
do 2
do 3
do 4
do 5
do 6
do 7
(数据库中有3000行)
但是,如果我第二次运行相同的文件它不会做任何事情只是等待另一个文件完成然后只写“1停止”意味着即使我同时启动文件也没有做任何事情。
我注意到如果我同时启动这两个文件并取消第一个文件的执行 - 第二个文件只是从1个id开始,即使500个行已经state
='没有'。< / p>
现在有了我的东西......这是一个php或mysql问题吗?如何让一个文件运行两次处理不同的数据而不是像这样挂起?
CentOS 6.6版(最终版)
PHP 5.3.28(cli)(建于2014年7月21日12:19:25)
+-------------------------+------------------------------+
| Variable_name | Value |
+-------------------------+------------------------------+
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.5.38 |
| version_comment | MySQL Community Server (GPL) |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
+-------------------------+------------------------------+