예제 #1
0
 public function actionIndex()
 {
     if ($rssSources = RssSources::findAll(["active" => "1"])) {
         foreach ($rssSources as $source) {
             Yii::$app->getDb()->close();
             $pid = pcntl_fork();
             Yii::$app->getDb()->open();
             if (!$pid) {
                 if ($source->is_full == 0) {
                     $detector = new RssNewsDetectorComponent($source);
                     $detector->run();
                 } else {
                     $parser = new RssNewsParserComponent($source);
                     $parser->run();
                 }
                 Yii::$app->end();
             }
         }
         while (pcntl_waitpid(0, $status) != -1) {
             $status = pcntl_wexitstatus($status);
             echo "Child {$status} completed\n";
         }
     }
 }