Files
Pichome/dzz/ffmpeg/thumb.php

89 lines
3.2 KiB
PHP
Raw Permalink Normal View History

2021-12-09 21:00:09 +08:00
<?php
/**
* Created by PhpStorm.
* User: 86187
* Date: 2020/3/7
* Time: 15:53
*/
ignore_user_abort(true);
if (!defined('IN_OAOOA')) {
exit('Access Denied');
}
@set_time_limit(0);
ini_set('memory_limit', -1);
@ini_set('max_execution_time', 0);
2022-05-02 22:31:35 +08:00
$appids = [''];
2022-06-25 14:48:20 +08:00
foreach(DB::fetch_all("select appid,path from %t where `type` = %d and getinfo = %d and isdelete < 1",array('pichome_vapp',1,1)) as $v){
if(is_dir($v['path']))$appids[] = $v['appid'];
2021-12-09 21:00:09 +08:00
}
if(empty($appids)){
exit('success');
}
$locked = true;
2022-02-24 16:53:32 +08:00
/*for($i=0;$i<1;$i++){
2021-12-09 21:00:09 +08:00
$processname = 'DZZ_LOCK_PICHOMEGETVIDOTHUMB'.$i;
if (!dzz_process::islocked($processname, 60*60)) {
$locked=false;
break;
}
2022-02-24 16:53:32 +08:00
}*/
$i = 0;
2021-12-09 21:00:09 +08:00
$processname = 'DZZ_LOCK_PICHOMEGETVIDOTHUMB'.$i;
2022-06-25 14:48:20 +08:00
$limit = 100;
2021-12-09 21:00:09 +08:00
$start=$i*$limit;
2022-06-25 14:48:20 +08:00
dzz_process::unlock($processname);
2022-05-02 22:31:35 +08:00
if (!dzz_process::islocked($processname, 60*30)) {
2021-12-09 21:00:09 +08:00
$locked=false;
}
if ($locked) {
exit(json_encode( array('error'=>'进程已被锁定请稍后再试')));
}
2022-05-02 22:31:35 +08:00
$datas = DB::fetch_all("select * from %t where thumbstatus = 0 and appid in(%n)
2022-06-25 14:48:20 +08:00
order by thumbdonum asc limit $start,$limit",array('pichome_ffmpeg_record',$appids));
2022-05-02 22:31:35 +08:00
use dzz\ffmpeg\classes\thumb as thumb;
if($datas){
2022-06-25 14:48:20 +08:00
$thumb =new thumb;
2022-05-02 22:31:35 +08:00
foreach($datas as $v){
$processname1 = 'PICHOMEGETVIDOTHUMB_'.$v['rid'];
if (dzz_process::islocked($processname1, 60*5)) {
2021-12-09 21:00:09 +08:00
continue;
}
2022-05-02 22:31:35 +08:00
$data = C::t('pichome_resources')->fetch_data_by_rid($v['rid']);
if(empty($data)){
C::t('pichome_ffmpeg_record')->delete($v['rid']);
2021-12-09 21:00:09 +08:00
dzz_process::unlock($processname1);
continue;
2022-05-02 22:31:35 +08:00
}else{
//如果缩略图获取次数大于三次直接赋值为1不再尝试获取
if($v['thumbdonum'] > 3 && $v['thumbstatus'] == 0){
2022-06-25 14:48:20 +08:00
$v['thumbstatus'] = 1;
C::t('pichome_ffmpeg_record')->update($v['rid'],array('thumbstatus'=>1));
2022-05-02 22:31:35 +08:00
dzz_process::unlock($processname1);
2022-06-25 14:48:20 +08:00
2022-05-02 22:31:35 +08:00
continue;
}
//如果信息和缩略图标记为已生成,标记该文件信息状态为已获取
if($v['thumbstatus'] == 1 && $v['infostatus'] == 1){
if(!DB::result_first("select isget from %t where rid = %s",array('pichome_resources_attr',$v['rid']))) {
C::t('pichome_resources_attr')->update($v['rid'], array('isget' => 1));
C::t('pichome_vapp')->add_getinfonum_by_appid($v['appid'], 1);
}
dzz_process::unlock($processname1);
2022-06-25 14:48:20 +08:00
2022-05-02 22:31:35 +08:00
continue;
}
DB::query("update %t set thumbdonum=thumbdonum+%d where rid = %s ", array('pichome_ffmpeg_record', 1, $data['rid']));
$thumb->rundata($data);
dzz_process::unlock($processname1);
}
}
dzz_process::unlock($processname);
if(DB::result_first("select * from %t where thumbstatus = 0 and appid in(%n)",array('pichome_ffmpeg_record',$appids))){
2022-06-25 14:48:20 +08:00
sleep(2);
dfsockopen(getglobal('localurl') . 'index.php?mod=ffmpeg&op=thumb', 0, '', '', false, '', 1);
2021-12-09 21:00:09 +08:00
}
2022-06-25 14:48:20 +08:00
}else{
dzz_process::unlock($processname);
2021-12-09 21:00:09 +08:00
}
exit('success');