我在crontab中调用脚本mywebsite.com/download.php
。
download.php
$video_url = "www.example.com/sample.mp4"; //hour long video
$link = '/home/mywebsite.com/videos/test.mp4';
$chunkSize = 1;
$chunksize = $chunkSize*(1024*1024); // How many bytes per chunk
$data = '';
$bytesCount = 0;
$handle = fopen($video_url, 'rb');
$fp = fopen($link, 'w');
if ($handle === false) {
return false;
}
while (!feof($handle)) {
$data = fread($handle, $chunksize);
fwrite($fp, $data, strlen($data));
}
$status = fclose($handle);
fclose($fp);
问题是视频较长的脚本超时。我无法选择增加服务器超时限制。
有什么其他方法可以确保下载视频?
ignore_user_abort();
吗?
set_time_limit(0);
吗?服务器会忽略吗?
我有一个队列系统,所以一次只能下载1个视频。
crontab调用
*/15 * * * * /usr/bin/php /home/example.com/index.php media get_video