connectholland / tactician-scheduler-plugin
此包已被废弃,不再维护。未建议替代包。
Tactician插件,允许在未来的某个特定时间执行命令
1.1.1
2016-04-04 13:08 UTC
Requires
- league/tactician: ^0.6.0 | ^1.0
- ramsey/uuid: ^2.8
- symfony/console: ^2.7
Requires (Dev)
- phpunit/phpunit: ^4.7
- satooshi/php-coveralls: ^0.6.1
- squizlabs/php_codesniffer: ^2.3
This package is auto-updated.
Last update: 2023-05-29 00:58:29 UTC
README
Tactician插件,允许在未来的某个特定时间执行命令
概念
此插件允许您创建将在未来特定时间执行的ScheduledCommands。
使用方法
确保将SchedulerMiddleware放入您的CommandBus中间件链中
// create your other middleware $middleware[] = new SchedulerMiddleware(new FileBasedScheduler($pathWhereTheSchedulerMayKeepItsFiles) ); // create your other middleware $commandbus = new CommandBus($middleware);
让您想安排的命令继承自AbstractScheduledCommand或实现ScheduledCommandInterface。创建它并设置执行时间
class SayHappyNewYear extends AbstractScheduledCommand { private $message; public function __construct($message) { $this->message = $message; } public function getMessage() { return $this->message; } } $myScheduledCommand = new SayHappyNewYear('Happy New Year'); $myScheduledCommand->setTimestamp(strtotime('2016-01-01 0:00:00') ); $myCommandBus->handle($myScheduledCommand);
创建一个引导文件,构建您的Commandbus并使用cron安排执行命令,例如bootstrap.php
// setup any environment you need // create your other middleware $middleware[] = new SchedulerMiddleware(new FileBasedScheduler($pathWhereTheSchedulerMayKeepItsFiles) ); // create your other middleware $commandbus = new CommandBus($middleware); return $commandbus;
按您喜欢的任何间隔安排Cron调度器(运行得越多,您对命令的调度越精确),例如每分钟运行一次
* * * * * www-data vendor/bin/scheduler scheduler:execute bootstrap.php
或者,您可以使用该包附带的管理员命令,每10秒安排一个迭代,使用
vendor/bin/scheduler scheduler:daemon bootstrap.php 10
使用以在一分钟后停止
vendor/bin/scheduler scheduler:daemon bootstrap.php 10 6