作者 李宇航

合并分支 'master-server' 到 'master'

修改视频模块脚本



查看合并请求 !669
@@ -59,12 +59,12 @@ class VideoTask extends Command @@ -59,12 +59,12 @@ class VideoTask extends Command
59 */ 59 */
60 public function handle() 60 public function handle()
61 { 61 {
62 - $number = $this->getVideoNumber(); 62 + Log::info('开始视频推广任务');
  63 + $number = KeywordVideoTaskLog::getMonthVideoNum();
63 if($number >= $this->max_num){ 64 if($number >= $this->max_num){
  65 + Log::info('当月以达到最大视频生成数,任务执行数:' . $number);
64 return true; 66 return true;
65 } 67 }
66 - echo '开始:'.PHP_EOL;  
67 - Log::info('开始视频推广任务');  
68 $this->createSubTask($number); 68 $this->createSubTask($number);
69 $this->sendSubTask(); 69 $this->sendSubTask();
70 Log::info('结束视频推广任务'); 70 Log::info('结束视频推广任务');
@@ -72,31 +72,6 @@ class VideoTask extends Command @@ -72,31 +72,6 @@ class VideoTask extends Command
72 } 72 }
73 73
74 /** 74 /**
75 - * @remark :获取当月的数据总量  
76 - * @name :getVideoNumber  
77 - * @author :lyh  
78 - * @method :post  
79 - * @time :2024/7/12 18:02  
80 - */  
81 - public function getVideoNumber()  
82 - {  
83 - $current_time = date('Y-m-d 00:00:00');  
84 - $number = Cache::get('video_keyword_number');  
85 - if(empty($number) || ($current_time == date('Y-m-13 00:00:00'))){  
86 - if($current_time <= date('Y-m-13 00:00:00')){  
87 - $startOfMonth = Carbon::now()->subMonth()->day(13)->format('Y-m-d 00:00:00');  
88 - $endOfMonth = Carbon::now()->day(13)->format('Y-m-d 00:00:00');  
89 - }else{  
90 - $startOfMonth = Carbon::now()->day(13)->format('Y-m-d 00:00:00');  
91 - $endOfMonth = Carbon::now()->addMonth()->day(13)->format('Y-m-d 00:00:00');  
92 - }  
93 - $taskLogModel = new KeywordVideoTaskLog();  
94 - $number = $taskLogModel->formatQuery(['created_at' => ['between', [$startOfMonth, $endOfMonth]]])->count();  
95 - Cache::put('video_keyword_number',$number);  
96 - }  
97 - return $number;  
98 - }  
99 - /**  
100 * 创建子任务 75 * 创建子任务
101 * TODO 获取需要生成子任务的项目,获取项目中未生成视频的关键词,通过关键词生成初始化子任务 76 * TODO 获取需要生成子任务的项目,获取项目中未生成视频的关键词,通过关键词生成初始化子任务
102 * @return bool 77 * @return bool
@@ -108,6 +83,9 @@ class VideoTask extends Command @@ -108,6 +83,9 @@ class VideoTask extends Command
108 if ($sub_task_num <= 0){ 83 if ($sub_task_num <= 0){
109 break; 84 break;
110 } 85 }
  86 + if($number >= $this->max_num){
  87 + break;
  88 + }
111 $task_project = KeywordVideoTask::where(['status' => KeywordVideoTask::STATUS_OPEN])->orderBy('sort', 'desc')->orderBy('id', 'desc')->first(); 89 $task_project = KeywordVideoTask::where(['status' => KeywordVideoTask::STATUS_OPEN])->orderBy('sort', 'desc')->orderBy('id', 'desc')->first();
112 if (empty($task_project)){ 90 if (empty($task_project)){
113 break; 91 break;
@@ -154,9 +132,9 @@ class VideoTask extends Command @@ -154,9 +132,9 @@ class VideoTask extends Command
154 if($rs && ($sub_task_num > 0)){ 132 if($rs && ($sub_task_num > 0)){
155 $sub_task_num--; 133 $sub_task_num--;
156 } 134 }
157 - Cache::put('video_keyword_number',$number++);  
158 } 135 }
159 } 136 }
  137 + Cache::put('video_keyword_number_month',$number + count($keyword),3600);
160 $task_project->status = KeywordVideoTask::STATUS_CLOSE; 138 $task_project->status = KeywordVideoTask::STATUS_CLOSE;
161 $task_project->save(); 139 $task_project->save();
162 } 140 }
@@ -10,6 +10,8 @@ @@ -10,6 +10,8 @@
10 namespace App\Models\Com; 10 namespace App\Models\Com;
11 11
12 use App\Models\Base; 12 use App\Models\Base;
  13 +use Illuminate\Support\Carbon;
  14 +use Illuminate\Support\Facades\Cache;
13 15
14 class KeywordVideoTaskLog extends Base 16 class KeywordVideoTaskLog extends Base
15 { 17 {
@@ -19,4 +21,26 @@ class KeywordVideoTaskLog extends Base @@ -19,4 +21,26 @@ class KeywordVideoTaskLog extends Base
19 const STATUS_ERROR = 3; 21 const STATUS_ERROR = 3;
20 22
21 protected $table = 'gl_keyword_video_task_log'; 23 protected $table = 'gl_keyword_video_task_log';
  24 +
  25 + /**
  26 + * 获取当月视频生成数量
  27 + * FIXME 混剪视频订阅计划 50000/m
  28 + * @return mixed
  29 + */
  30 + public static function getMonthVideoNum()
  31 + {
  32 + $key = 'video_keyword_number_month';
  33 + $num = Cache::get($key, function () use ($key) {
  34 + $this_day = date('d');
  35 + if($this_day >= 13) {
  36 + $start_date = Carbon::now()->day(13)->format('Y-m-d 00:00:00');
  37 + } else {
  38 + $start_date = Carbon::now()->subMonth()->day(13)->format('Y-m-d 00:00:00');
  39 + }
  40 + $num = self::where('created_at', '>', $start_date)->count();
  41 + Cache::put($key, $num, 3600);
  42 + return $num;
  43 + });
  44 + return $num;
  45 + }
22 } 46 }