weidizhang / php-timed-tasks
使用PHP轻松管理和创建多个定时任务
dev-master
2016-08-28 21:55 UTC
Requires
- php: >=5.5.0
This package is not auto-updated.
Last update: 2024-09-14 19:04:15 UTC
README
由Weidi Zhang创建
安装
composer require weidizhang/php-timed-tasks:dev-master
用法
首先,需要引入自动加载器并使用类。
require "vendor/autoload.php";
use weidizhang\PHPTimedTasks\Task;
use weidizhang\PHPTimedTasks\TimedTaskManager;
创建一个新的TimedTaskManager对象
$manager = new TimedTaskManager();
使用lambda函数
$manager->addTask(
new Task(function() {
echo "[" . date("h:i:s A") . "] Hello every 10 seconds!\n";
}, 10)
);
这里,这个函数将每10秒运行一次。
使用已声明的函数
function myFunc() {
echo "[" . date("h:i:s A") . "] Hello every 10 seconds!\n";
}
$manager->addTask(
new Task("myFunc", 10)
);
只需传入函数名作为字符串。
设置最大运行次数
$manager->addTask(
(new Task(function() {
echo "[" . date("h:i:s A") . "] Hello every 10 seconds!\n";
}, 10))
->setMaxTimes(5)
);
这是通过调用Task类的setMaxTimes函数实现的,该函数接受一个整数。
在这个例子中,这个任务总共将运行5次,每次间隔10秒。
设置参数
$manager->addTask(
(new Task(function($a, $b) {
echo "[" . date("h:i:s A") . "] Hello every 10 seconds for 5 times with arguments \"" . $a . "\" and \"" . $b . "\"\n";
}, 10))
->setMaxTimes(5)
->addParameters(array(
"test1",
"test2"
))
);
这是通过调用Task类的addParameters函数实现的,该函数接受一个数组。
使用随机间隔范围
$manager->addTask(
(new Task(function() {
echo "[" . date("h:i:s A") . "] Hello every 5-10 seconds!\n";
}))
->setRandomIntervalRange(5, 10)
);
这个任务将每5到10秒运行一次,每次使用这个范围内的随机间隔。
运行任务
第一种方法是使用
$manager->runTasks();
在此之后的所有代码在还有任务剩余的情况下将不会运行。
如果您有其他任务要执行,请使用您自己的while循环
while ($manager->runTasksOnce()) {
// your additional logic
}
删除任务
删除任务很简单。addTask函数返回一个整数。
$index = $manager->addTask( ... );
这可以用来删除任务。
$manager->removeTask($index);
许可
请阅读LICENSE.md了解您可以使用此源代码做什么以及不能做什么。