| 
					
				 | 
			
			
				@@ -0,0 +1,39 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<?php 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+declare (strict_types=1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+namespace app\command; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use think\console\Command; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use think\console\Input; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use think\console\input\Argument; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use think\console\input\Option; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use think\console\Output; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use think\facade\Db; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 主要处理短信的命令行程序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+class Solver extends Command { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    protected function configure() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 指令配置 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $this->setName('solver') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ->setDescription('the solver command'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    protected function execute(Input $input, Output $output) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 指令输出 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $lockFileName = "task_solver.lock"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $lockFile = fopen($lockFileName, "a"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (flock($lockFile, LOCK_EX | LOCK_NB)) {//文件锁(独占) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            set_time_limit(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $schedules = Db::table("new_schedule")->select(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var_dump($info); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            flock($lockFile, LOCK_UN); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $output->writeln('每分钟执行一次,执行时间超过1分钟下个1分钟跳过等待再下1分钟'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |