Giter Site home page Giter Site logo

task's Introduction

Flow Framework Task Scheduler

Latest Stable Version Total Downloads License

This package provides a simple to use task scheduler for Neos Flow. Tasks are configured via settings, recurring tasks can be configured using cron syntax. Detailed options configure the first and last executions as well as options for the class handling the task.

Scheduling and running tasks are decoupled: The Scheduler schedules tasks whcih the are executed by the TaskRunner. This architecture allows receiving and displaying metrics of already executed tasks.

Most of the architectural ideas behind the package are taken from php-task, and reimplemented for Neos Flow.

Installation

composer require 'flowpack/task'

Configuration

Defining A Task

Flowpack:
  Task:
    tasks:
      'a-unique-identifier':
        label: The label of this task
        description: Some detailed description of thsi 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

General Options

Implementing A Task Handler

A task handler contains the code executed for a specific task. Your command handler has to implement one of the following interfaces:

Flowpack\Task\TaskHandler\TaskHandlerInterface

A basic task. The interface requires the method handle(WorkloadInterface $workload): string to be implemented. The return value serves as information for successfully executed tasks.

Flowpack\Task\TaskHandler\RetryTaskHandlerInterface

Also requires getMaximumAttempts(): int to be implemented. Allowing the tasks to be retried on failure.

Flowpack\Task\TaskHandler\LockingTaskHandlerInterface

Also requires getLockIdentifier(WorkloadInterface $workload): string to be implemented. The return value specifies a lock to be acquired. When such a task is running, other tasks requiring the same lock will be skipped.

Available Commands

Schedule and run due tasks

./flow task:run

Schedule and run a single task

./flow task:runSingle <taskIdentifier>

Show a list of all defined and scheduled tasks:

./flow task:list

Show details about a specific task:

./flow task:show <taskIdentifier>

task's People

Contributors

daniellienert avatar bwaidelich avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.