public function testCustomHandler()
 {
     $handler = \Jenner\Crontab\Logger\MissionLoggerFactory::getHandler("custom://CustomHandler?param_1=param_1&param_2=param_2");
     $this->assertInstanceOf("Monolog\\Handler\\HandlerInterface", $handler);
     $reflect = new ReflectionObject($handler);
     $this->assertEquals($reflect->getProperty("param_1")->getValue($handler), "param_1");
     $this->assertEquals($reflect->getProperty("param_2")->getValue($handler), "param_2");
 }
Beispiel #2
0
 public function testNotStart()
 {
     if (file_exists($this->log_file)) {
         unlink($this->log_file);
     }
     $logger = \Jenner\Crontab\Logger\MissionLoggerFactory::create($this->log_file);
     $mission = new \Jenner\Crontab\Mission("mission_test", "ls /", "3 * * * *", $logger);
     $crontab = new \Jenner\Crontab\Crontab(null, array($mission));
     $crontab->start(time());
     $this->assertFalse(file_exists($this->log_file));
 }
Beispiel #3
0
<?php

/**
 * Created by PhpStorm.
 * User: Jenner
 * Date: 14-11-9
 * Time: 下午9:32
 */
date_default_timezone_set('PRC');
define('DS', DIRECTORY_SEPARATOR);
require dirname(dirname(__FILE__)) . DS . 'vendor' . DS . 'autoload.php';
error_reporting(E_ALL);
$missions = [['name' => 'ls', 'cmd' => "ls -al", 'out' => 'file:///tmp/php_crontab.log', 'time' => '* * * * *', 'user' => 'www', 'group' => 'www'], ['name' => 'hostname', 'cmd' => "hostname", 'out' => 'unix:///tmp/php_crontab.sock', 'time' => '* * * * *']];
$tasks = array();
foreach ($missions as $mission) {
    $mission_logger = \Jenner\Crontab\Logger\MissionLoggerFactory::create($mission['out']);
    $tasks[] = new \Jenner\Crontab\Mission($mission['name'], $mission['cmd'], $mission['time'], $mission_logger);
}
$logger = new \Monolog\Logger(\Jenner\Crontab\Crontab::NAME);
$logger->pushHandler(new \Monolog\Handler\StreamHandler("/var/log/php_crontab.log"));
$crontab_server = new \Jenner\Crontab\Crontab($logger, $tasks);
$crontab_server->start(time());
Beispiel #4
0
 /**
  * create crontab object
  *
  * @return Crontab
  */
 protected function createCrontab()
 {
     $tasks = $this->formatTasks();
     $missions = array();
     foreach ($tasks as $task) {
         $out = MissionLoggerFactory::create($task['out']);
         $err = MissionLoggerFactory::create($task['err']);
         $mission = new Mission($task['name'], $task['cmd'], $task['time'], $out, $err, $task['user'], $task['group']);
         $missions[] = $mission;
     }
     return new Crontab($this->logger, $missions);
 }
Beispiel #5
0
 public function setUp()
 {
     $logger = \Jenner\Crontab\Logger\MissionLoggerFactory::create($this->log_file);
     $this->mission = new \Jenner\Crontab\Mission("mission_test", "ls /", "* * * * *", $logger);
 }