Ejemplo n.º 1
0
 public function __construct($request, $response)
 {
     $this->request = $request;
     $this->response = $response;
     $this->loop = React::getLoop();
     $response->writeHead(200, ['Content-Type' => 'text/html;']);
 }
Ejemplo n.º 2
0
 private function setExecutor()
 {
     $loop = React::getLoop();
     // $que = self::$tasks;
     $task = $this->tasks->getTask();
     //获取最小执行时间的任务
     // $this->log->info("即将执行的任务是:".json_encode($this->tasks->getQue()).'中的'.json_encode($task));
     $now = time();
     if (!$task) {
         echo '没有任务可以执行..' . PHP_EOL;
         return;
     }
     $futureTime = $task->exec_time - $now;
     if (!$this->executor || $futureTime < $this->executor->exec_time) {
         //未设置定时器时,直接设置定时器 //或新任务的执行时间更小,更新executor
         // $task = self::getTask();
         if ($this->executor && $this->executor->isActive()) {
             //取消旧任务
             echo '取消旧任务..' . PHP_EOL;
             $this->executor->cancel();
         }
         $future = $loop->addTimer($futureTime, function () {
             $task = $this->tasks->popTask();
             if ($task) {
                 $this->execTask($task);
             } else {
                 echo '没有任务弹出执行..' . PHP_EOL;
             }
         });
         $future->exec_time = $futureTime + time();
         //增加执行时间字段,用于比较执行时间大小
         $this->executor = $future;
         return;
     }
 }
Ejemplo n.º 3
0
 /**
  * Test that React::the_content() doesn't change the content when not in the loop.
  */
 function test_content_not_changed_outside_loop()
 {
     $react = React::init();
     $content = 'foo';
     $this->assertEquals($content, $react->the_content($content));
 }