2017 © Pedro Peláez
 

symfony-bundle task-bundle

Scheduling of tasks for symfony made simple

image

glooby/task-bundle

Scheduling of tasks for symfony made simple

  • Tuesday, April 10, 2018
  • by kilhage
  • Repository
  • 3 Watchers
  • 8 Stars
  • 469 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 1 Open issues
  • 16 Versions
  • 16 % Grown

The README.md

task-bundle

Build Status Scrutinizer Code Quality Coverage Status Latest Stable Version Total Downloads License, (*1)

Provides a simple framework to manage scheduling and execution of tasks Symfony application., (*2)

Prerequisite

This bundle requires cron to be installed on the server to be able to execute scheduled tasks, (*3)

Installation

Add the glooby/task-bundle package to your require section in the composer.json file., (*4)

``` bash $ composer require glooby/task-bundle ~3.0, (*5)


Add the GloobyTaskBundle to your application's kernel: ``` php <?php public function registerBundles() { $bundles = [ // ... new Glooby\TaskBundle\GloobyTaskBundle(), // ... ]; ... }

Create this file /etc/cron.d/glooby_scheduler_run, (*6)

``` bash * * * * * nginx cd /path/to/project && php bin/console scheduler:run --env=prod &> /dev/null 2>&1, (*7)


Documentation ----------------- ### Create a executable Task To setup a new runnable task you should follow these steps #### Implement the TaskInterface example: src/Glooby/Api/TaskBundle/Task/PingTask.php ```php class PingTask implements TaskInterface { /** * @inheritdoc */ public function run(array $params = []) { return 'pong'; } }

Add a service for your task, (*8)

services:
    glooby_task.ping:
        class: Glooby\TaskBundle\Task\PingTask

Try and run the task trough cli


$ bin/console task:run glooby_task.ping "pong"

Setup Scheduled task

To setup a new schedule you should follow the steps below, (*9)

Make your service runnable

Follow the steps in [Create a executable Task](#Create a executable Task), (*10)

Tag your service

By tagging your service with the glooby.scheduled_task tag it will be treated as a scheduled task, (*11)

example:, (*12)

src/Glooby/Api/TaskBundle/Resources/config/services.yml, (*13)


services: glooby_task.ping: class: Glooby\TaskBundle\Task\PingTask tags: - { name: glooby.scheduled_task }

Annotate your class

Annotate your class with this annotation: Glooby\TaskBundle\Annotation\Schedule, (*14)

Parameters
interval

The first parameter to the annotation is defaulted to the interval parameter. In this parameter you configure the interval that the service should be executed., (*15)

The interval is a string of five or optional six subexpressions that describe details of the schedule. The syntax is based on the Linux cron daemon definition., (*16)

    *    *    *    *    *    *
    -    -    -    -    -    -
    |    |    |    |    |    |
    |    |    |    |    |    + year [optional]
    |    |    |    |    +----- day of week (0 - 7) (Sunday=0 or 7)
    |    |    |    +---------- month (1 - 12)
    |    |    +--------------- day of month (1 - 31)
    |    +-------------------- hour (0 - 23)
    +------------------------- min (0 - 59)

This is the only required parameter, (*17)


use Glooby\TaskBundle\Annotation\Schedule; /** * @Schedule("* * * * *") */ class PingTask implements TaskInterface {

Here you have several shortcuts that you can use instead for most common use cases, (*18)

value interval
@yearly 0 0 1 1 *
@annually 0 0 1 1 *
@monthly 0 0 1 * *
@weekly 0 0 * * 0
@daily 0 0 * * *
@hourly 0 * * * *
@semi_hourly */30 * * * *
@quarter_hourly */15 * * * *
* * * * * *

use Glooby\TaskBundle\Annotation\Schedule; /** * @Schedule("@hourly") */ class PingTask implements TaskInterface {
params

The params that should be used when calling, (*19)


use Glooby\TaskBundle\Annotation\Schedule; /** * @Schedule("@weekly", params={"wash": true, "flush": 500}) */ class CityImporter implements TaskInterface {
active

Phe active parameter tells if the schedule should be active or not, default=true, (*20)


use Glooby\TaskBundle\Annotation\Schedule; /** * @Schedule("*/6", active=false) */ class PingTask implements TaskInterface {

Sync schedules to the database, this has to be run after each update


bin/console scheduler:run

Running the Tests

Install the dependencies:, (*21)

``` bash $ script/bootstrap, (*22)


Then, run the test suite: ``` bash $ script/test

Contributing

See CONTRIBUTING file., (*23)

License

This bundle is released under the MIT license. See the complete license in the bundle: LICENSE.md, (*24)

www.glooby.com www.glooby.se, (*25)

The Versions

10/04 2018

dev-master

9999999-dev https://www.glooby.se

Scheduling of tasks for symfony made simple

  Sources   Download

MIT

The Requires

 

The Development Requires

task scheduler bundle symfony cron glooby

10/01 2018

2.2.2

2.2.2.0 https://www.glooby.se

Scheduling of tasks for symfony made simple

  Sources   Download

MIT

The Requires

 

The Development Requires

task scheduler bundle symfony cron glooby

10/01 2018

2.2.1

2.2.1.0 https://www.glooby.se

Scheduling of tasks for symfony made simple

  Sources   Download

MIT

The Requires

 

The Development Requires

task scheduler bundle symfony cron glooby

10/01 2018

2.2.0

2.2.0.0 https://www.glooby.se

Scheduling of tasks for symfony made simple

  Sources   Download

MIT

The Requires

 

The Development Requires

task scheduler bundle symfony cron glooby

09/06 2017

2.1.2

2.1.2.0 https://www.glooby.se

Scheduling of tasks for symfony made simple

  Sources   Download

MIT

The Requires

 

The Development Requires

task scheduler bundle symfony cron glooby

20/04 2017

2.1.1

2.1.1.0 https://www.glooby.se

Scheduling of tasks for symfony made simple

  Sources   Download

MIT

The Requires

 

The Development Requires

task scheduler bundle symfony cron glooby

13/04 2017

2.1.0

2.1.0.0 https://www.glooby.se

Scheduling of tasks for symfony made simple

  Sources   Download

MIT

The Requires

 

The Development Requires

task scheduler bundle symfony cron glooby

16/03 2017

2.0.2

2.0.2.0 https://www.glooby.se

Scheduling of tasks for symfony made simple

  Sources   Download

MIT

The Requires

 

The Development Requires

task scheduler bundle symfony cron glooby

15/03 2017

2.0.1

2.0.1.0 https://www.glooby.se

Scheduling of tasks for symfony made simple

  Sources   Download

MIT

The Requires

 

The Development Requires

task scheduler bundle symfony cron glooby

14/03 2017

2.0.0

2.0.0.0 https://www.glooby.se

Scheduling of tasks for symfony made simple

  Sources   Download

MIT

The Requires

 

The Development Requires

task scheduler bundle symfony cron glooby

22/11 2016

1.0.2

1.0.2.0 https://www.glooby.se

Scheduling of tasks for symfony made simple

  Sources   Download

MIT

The Requires

 

The Development Requires

task scheduler bundle symfony cron glooby

15/10 2016

1.0.1

1.0.1.0

Scheduling of tasks for symfony made simple

  Sources   Download

MIT

The Requires

 

The Development Requires

task scheduler bundle symfony cron glooby

15/10 2016

1.0.0

1.0.0.0

Scheduling of tasks for symfony made simple

  Sources   Download

MIT

The Requires

 

The Development Requires

task scheduler bundle symfony cron glooby

15/10 2016

0.1.2

0.1.2.0

Scheduling of tasks for symfony made simple

  Sources   Download

MIT

The Requires

 

The Development Requires

task scheduler bundle symfony cron glooby

15/10 2016

0.1.1

0.1.1.0

Scheduling of tasks for symfony made simple

  Sources   Download

MIT

The Requires

 

The Development Requires

task scheduler bundle symfony cron glooby

04/10 2016

0.1.0

0.1.0.0

Scheduling of tasks for symfony made simple

  Sources   Download

MIT

The Requires

 

The Development Requires

task scheduler bundle symfony cron glooby