-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
338 additions
and
269 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
<?php | ||
/** | ||
* Created by PhpStorm. | ||
* User: Administrator | ||
* Date: 2016/10/18 | ||
* Time: 17:54 | ||
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
<?php | ||
/** | ||
* Created by PhpStorm. | ||
* User: Administrator | ||
* Date: 2016/10/18 | ||
* Time: 17:50 | ||
*/ | ||
return [ | ||
[ | ||
'timeout'=>[ | ||
'taskID'=>4, | ||
'name'=>'addPush',//线上的名称 | ||
'desc'=>'每秒钟往redis中写入输入',//计划任务的描述 | ||
'time'=>'16 * * * *',//根据crontab的计划任务 | ||
'url'=>'Index/index',//执行的方法路径 | ||
'argv'=>[ | ||
'name'=>'xiaobai', | ||
'age'=>10, | ||
] | ||
], | ||
'intval'=>[ | ||
'taskID'=>4, | ||
'name'=>'addPush',//线上的名称 | ||
'desc'=>'每秒钟往redis中写入输入',//计划任务的描述 | ||
'time'=>'16 * * * *',//根据crontab的计划任务 | ||
'url'=>'Index/index',//执行的方法路径 | ||
'argv'=>[ | ||
'name'=>'xiaobai', | ||
'age'=>10, | ||
] | ||
] | ||
|
||
] | ||
]; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
<?php | ||
/** | ||
* Created by PhpStorm. | ||
* User: Administrator | ||
* Date: 2016/10/19 | ||
* Time: 10:54 | ||
*/ | ||
namespace core\Lib; | ||
/* https://github.com/jkonieczny/PHP-Crontab */ | ||
class Crontab { | ||
/** | ||
* Finds next execution time(stamp) parsin crontab syntax, | ||
* after given starting timestamp (or current time if ommited) | ||
* | ||
* @param string $_cron_string: | ||
* | ||
* 0 1 2 3 4 | ||
* * * * * * | ||
* - - - - - | ||
* | | | | | | ||
* | | | | +----- day of week (0 - 6) (Sunday=0) | ||
* | | | +------- month (1 - 12) | ||
* | | +--------- day of month (1 - 31) | ||
* | +----------- hour (0 - 23) | ||
* +------------- min (0 - 59) | ||
* @param int $_after_timestamp timestamp [default=current timestamp] | ||
* @return int unix timestamp - next execution time will be greater | ||
* than given timestamp (defaults to the current timestamp) | ||
* @throws InvalidArgumentException | ||
*/ | ||
public static function parse($_cron_string,$_after_timestamp=null) | ||
{ | ||
if(!preg_match('/^((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)\s+((\*(\/[0-9]+)?)|[0-9\-\,\/]+)$/i',trim($_cron_string))){ | ||
throw new InvalidArgumentException("Invalid cron string: ".$_cron_string); | ||
} | ||
if($_after_timestamp && !is_numeric($_after_timestamp)){ | ||
throw new InvalidArgumentException("\$_after_timestamp must be a valid unix timestamp ($_after_timestamp given)"); | ||
} | ||
$cron = preg_split("/[\s]+/i",trim($_cron_string)); | ||
$start = empty($_after_timestamp)?time():$_after_timestamp; | ||
$date = array( 'minutes' =>self::_parseCronNumbers($cron[0],0,59), | ||
'hours' =>self::_parseCronNumbers($cron[1],0,23), | ||
'dom' =>self::_parseCronNumbers($cron[2],1,31), | ||
'month' =>self::_parseCronNumbers($cron[3],1,12), | ||
'dow' =>self::_parseCronNumbers($cron[4],0,6), | ||
); | ||
// limited to time()+366 - no need to check more than 1year ahead | ||
for($i=0;$i<=60*60*24*366;$i+=60){ | ||
if( in_array(intval(date('j',$start+$i)),$date['dom']) && | ||
in_array(intval(date('n',$start+$i)),$date['month']) && | ||
in_array(intval(date('w',$start+$i)),$date['dow']) && | ||
in_array(intval(date('G',$start+$i)),$date['hours']) && | ||
in_array(intval(date('i',$start+$i)),$date['minutes']) | ||
){ | ||
return $start+$i; | ||
} | ||
} | ||
return null; | ||
} | ||
/** | ||
* get a single cron style notation and parse it into numeric value | ||
* | ||
* @param string $s cron string element | ||
* @param int $min minimum possible value | ||
* @param int $max maximum possible value | ||
* @return int parsed number | ||
*/ | ||
protected static function _parseCronNumbers($s,$min,$max) | ||
{ | ||
$result = array(); | ||
$v = explode(',',$s); | ||
|
||
foreach($v as $vv){ | ||
$vvv = explode('/',$vv); | ||
$step = empty($vvv[1])?1:$vvv[1]; | ||
$vvvv = explode('-',$vvv[0]); | ||
$_min = count($vvvv)==2?$vvvv[0]:($vvv[0]=='*'?$min:$vvv[0]); | ||
$_max = count($vvvv)==2?$vvvv[1]:($vvv[0]=='*'?$max:$vvv[0]); | ||
for($i=$_min;$i<=$_max;$i+=$step){ | ||
$result[$i]=intval($i); | ||
|
||
} | ||
} | ||
ksort($result); | ||
return $result; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
启动命令 | ||
/usr/local/php/bin/php /home/wwwroot/default/lphp/swooleServer/Main.php -t http -s start | ||
-t 类型 | ||
-s 启动命令 | ||
访问: | ||
index index | ||
配置文件 | ||
AUTOLOAD=1 #是否自动加载模块 自动加载 需要加载redis 和mysql 如果测试 可以禁止掉 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
5506 | ||
83800 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
61257 | ||
82333 |