flowpack/task

Neos Flow的任务调度器

维护者

详细信息

github.com/Flowpack/task

源代码

问题

安装次数: 28,363

依赖项: 1

建议者: 0

安全性: 0

星标: 12

关注者: 15

分支: 5

开放问题: 4

类型:neos-package

1.2.1 2023-06-02 09:36 UTC

This package is auto-updated.

Last update: 2024-09-05 14:01:52 UTC


README

Latest Stable Version Total Downloads License

此软件包提供了一个简单易用的Neos Flow任务调度器。任务通过设置进行配置,可以通过cron语法配置重复任务。详细选项配置了第一次和最后一次执行,以及处理任务的类选项。

调度和运行任务相互独立:由Scheduler调度任务,由TaskRunner执行。这种架构允许接收和显示已执行任务的指标。

此软件包背后的大多数架构思想都来源于php-task,并重新实现为Neos Flow。

安装

composer require 'flowpack/task'

配置

定义任务

Flowpack:
  Task:
    tasks:
      'a-unique-identifier':
        label: The label of this task
        description: Some detailed description of this task
        # A class, implementing the TaskHandlerInterface  
        handlerClass: 'Vendor\Package\TaskHandler\TaskHandlerClass'
        cronExpression: '*/5 * * * *'
        # A workload, eg. some configuration, given to the taskHandler
        workload:
          interval: PT5M

通用选项

实现任务处理器

任务处理器包含执行特定任务的代码。您的命令处理器必须实现以下接口之一

Flowpack\Task\TaskHandler\TaskHandlerInterface

基本任务。接口要求实现方法handle(WorkloadInterface $workload): string。返回值作为成功执行任务的信息。

Flowpack\Task\TaskHandler\RetryTaskHandlerInterface

还需要实现getMaximumAttempts(): int。允许任务在失败时重试。

Flowpack\Task\TaskHandler\LockingTaskHandlerInterface

还需要实现getLockIdentifier(WorkloadInterface $workload): string。返回值指定要获取的锁。当此类任务正在运行时,其他需要相同锁的任务将被跳过。

可用命令

调度和运行应执行的任务

./flow task:run

调度和运行单个任务

./flow task:runSingle <taskIdentifier>

显示所有定义和计划的任务列表

./flow task:list

显示特定任务的详细信息

./flow task:show <taskIdentifier>