UpdateProjectTdk.php 1.7 KB
<?php
/**
 * @remark :
 * @name   :UpdateProjectTdk.php
 * @author :lyh
 * @method :post
 * @time   :2025/7/2 11:11
 */

namespace App\Console\Commands\Tdk;

use App\Models\Com\NoticeLog;
use Illuminate\Console\Command;

class UpdateProjectTdk extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'update_project_tdk';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '根据给定的文件更新项目的tdk';


    public function handle(){
        $noticeLogModel = new NoticeLog();
        while (true){
            $task_id = $this->getTaskId();
            if(empty($task_id)){
                sleep(30);
                continue;
            }
            $info = $noticeLogModel->read(['id'=>$task_id]);
            if($info === false){

            }
        }
        return true;
    }

    /**
     * @remark :获取任务id
     * @name   :getTaskId
     * @author :lyh
     * @method :post
     * @time   :2025/7/2 11:19
     */
    public function getTaskId()
    {
        $task_id = Redis::rpop('update_project_tdk_task');
        if (empty($task_id)) {
            $noticeLogModel = new NoticeLog();
            $ids = $noticeLogModel->selectField(['status'=>$noticeLogModel::STATUS_PENDING,'type'=>$noticeLogModel::TYPE_UPDATE_PROJECT_TDK],'id');
             if(!empty($ids)){
                foreach ($ids as $id) {
                    Redis::lpush('update_project_tdk_task', $id);
                }
            }
            $task_id = Redis::rpop('update_project_tdk_task');
        }
        return $task_id;
    }
}