public function testCustomHandler() { $handler = \Jenner\Crontab\Logger\MissionLoggerFactory::getHandler("custom://CustomHandler?param_1=param_1¶m_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"); }
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)); }
<?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());
/** * 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); }
public function setUp() { $logger = \Jenner\Crontab\Logger\MissionLoggerFactory::create($this->log_file); $this->mission = new \Jenner\Crontab\Mission("mission_test", "ls /", "* * * * *", $logger); }