app-zap / phpframework-scheduler
该软件包最新版本(dev-develop)没有提供许可证信息。
dev-develop
2015-01-19 15:21 UTC
Requires
- app-zap/phpframework: dev-develop
- mtdowling/cron-expression: 1.0.*
This package is auto-updated.
Last update: 2024-08-29 03:36:41 UTC
README
本软件包是PHPFramework的插件。
在编写应用程序时,您经常需要为稍后或定期执行的任务进行排程。而不是为每个任务配置cronjob,您可以使用调度程序作为代理。
安装
将此软件包作为要求包含在您的composer.json
中。例如
{
...
"require": {
...
"app-zap/phpframework-scheduler": "dev-develop"
}
}
此插件需要特定的SQL结构。您必须自行包含它,因为PHPFramework尚不能加载插件SQL
CREATE TABLE `schedulertask` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`classname` varchar(255) NOT NULL DEFAULT '',
`last_execution` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `classname` (`classname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
提示:如果您正在使用PHPFramework的数据库迁移器,将上述语句复制到.sql
文件中,以便在需要时自动应用。
设置cronjob如下
*/5 * * * * php path/to/your/projects/index.php invokeScheduler
配置
您可以在settings.ini
中设置任务
[phpframework-scheduler]
tasks.MyVendor\MyApp\Task\DailyStatisticsMail = "0 18 * * *"
这将在每天下午6点调用DailyStatisticsMail
类。该类必须实现\AppZap\PHPFrameworkScheduler\TaskExecutorInterface
,这意味着它必须实现execute()
方法。
为了调试目的,您可以通过浏览器中的GET请求启动调度程序
[phpframework-scheduler]
enable_get_request = true