ttree/scheduler

Neos Flow Framework 简单的任务调度器

安装次数: 90,812

依赖项: 2

建议者: 0

安全: 0

星标: 21

关注者: 7

分支: 12

开放问题: 1

类型:neos-package

3.1.4 2022-10-11 19:55 UTC

This package is auto-updated.

Last update: 2024-09-12 00:02:28 UTC


README

一个基于cron灵感的,为您的Flow和Neos项目提供的任务调度器。

创建任务对象

您需要实现 Ttree\Scheduler\Task\TaskInterface 接口:

class MyTask implements \Ttree\Scheduler\Task\TaskInterface {
	/**
	 * @param array
	 * @return void
	 */
	public function execute(array $arguments = array()) {
		// ...
	}
}

动态任务

您可以通过向您的类添加一个 `Ttree\Scheduler\Annotations\Schedule` 注解来安排您自己的任务对象:

use Ttree\Scheduler\Annotations as Scheduler;
/**
 * @Scheduler\Schedule(expression="* * * * *")
 */
class MyTask implements \Ttree\Scheduler\Task\TaskInterface {
	// ...
}

此任务将每分钟执行一次。动态任务不支持参数,执行方法的 $arguments 总是一个空数组。

如果您的表达式包含斜杠,您必须进行双重转义。例如,每5分钟运行任务:@Scheduler\Schedule(expression="*\\/5 * * * *")

您还可以使用 Meta 注解添加任务的描述:

use Ttree\Scheduler\Annotations as Scheduler;
/**
 * @Scheduler\Meta(description="Describes your task.")
 */

持久化任务

您还可以创建持久化任务。持久化任务支持执行参数。您可以在任务之间传递不同的参数时注册相同的任务对象。您可以传递一个有效的JSON参数数组

flow task:register --expression "* */3 * * *" --task "Ttree\Aggregator\Task\AggregatorTask" --arguments '{"node": "af97b530-0c70-7b87-3cf4-f9a611f88c18"}'

可用的配置选项

可用的CLI辅助工具

列出所有可用的任务(动态和持久化)

flow task:list

运行所有到期的任务(动态和持久化)

flow task:run

直接运行单个任务

flow task:runSingle --task [identifier]

启用持久化任务

flow task:enable --task [identifier]

禁用持久化任务

flow task:disable --task [identifier]

待办事项

如果您需要特定的功能,请随意提出问题,并最好发送一个拉取请求。以下是一些未来改进的想法

  • 一个Neos后端模块,以便对任务有总体了解
  • 异步任务处理或多线程(pthread支持)

致谢

此包受到 Famelo.Scheduler - by mneuhaus 的启发。

ttree ltd - neos solution provider 赞助开发。

许可证

在GPLv2+许可下发布,请参阅 LICENSE