【发布时间】:2018-11-24 12:41:41
【问题描述】:
我想创建每秒检查数据库中传入订单并做一些事情的服务。现在我正在使用 php5.6 和 mysql,但我不确定这是否有好处。 对不起我的代码,但现在我正在这样做:
for ($x=0; $x < 999999999999; $x++)
{
$query1 = mysql_query("SELECT * FROM `orders`");
while ($row = mysql_fetch_assoc($query1)) {
//doing some stuff here
}
sleep(1);
}
它可以工作大约 12 小时,并且在出现错误时崩溃。 有没有更好的解决方案,或者选择不同的语言更好?
【问题讨论】:
-
你可以使用 while(true){}
-
仅供参考,you shouldn't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解prepared statements,并使用PDO 或MySQLi - this article 将帮助您决定哪一个最适合您。 -
为什么每次都要查询数据库来查看订单,如果是同一台服务器,订单来了就运行代码
-
这也可能是由于内存造成的......如果您对代码不小心,那么您可能只是在脚本无限运行时内存不足
-
收到订单后做你的事情,如果真的不可能,你可以在db中使用triger来调用php代码,但这并不容易。 stackoverflow.com/a/1467387/6281135
标签: php mysql service while-loop infinite-loop