【发布时间】:2014-11-15 07:14:06
【问题描述】:
我不确定发生了什么,但似乎是因为等待时间。 所以当我执行此页面进行视频转换时。首先 mysql 查询有效,但几分钟后 mysql 查询将无法正常工作。转换小文件时不会发生(转换时间更短)
mysql 工作
$db->query("UPDATE temporary SET used='1' WHERE hash='$hash'");
//等待ffmpeg转换
exec("/usr/local/bin/ffmpeg -y -i $input -threads 10 -preset medium -vf 'scale=-1:270, scale=trunc(iw/2)*2:270' -map 0 -movflags +faststart -profile:v baseline -level 3.0 $output");
//mysql不会工作
$db->query("UPDATE temporary SET used='1' WHERE hash='$hash'");
//这里仍然有效
unlink($dir.$file);
【问题讨论】:
-
“不会工作”是什么意思?连接?查询?你检查过日志文件吗?
-
我没有得到任何日志文件。我知道,当 ffmpeg 转换后 php 执行花费太长时间才能再次到达 sql 查询时,它将无法正常工作。所以这很可能是连接?
-
谁知道呢!您绝对可以激活日志文件以深入研究问题。一个 sql 查询涉及很多事情,其中任何事情都可能失败。你检查过 php error_log 吗?服务器控制台? mysql 日志?
-
SET GLOBAL wait_timeout= '3600' 这实际上完成了 mysql 连接关闭时间的工作
-
请注意,您正在不必要地劫持连接。您最好关闭连接,进行视频转码,然后打开一个新的进行更新。 db 连接是非常宝贵且有限的资源!