A Symfony bundle built to schedule/consume repetitive tasks

Overview

SchedulerBundleHero

Current bundle version Packagist Downloads PHP version requirement Symfony Insight Infection score License

Daily runs
Code style Infection PHPUnit Rector Security Static analysis
Code style Infection PHPUnit Rector Security Static analysis

A Symfony bundle built to schedule/consume repetitive tasks

Main features

  • External transports (Doctrine, Redis, etc)
  • External configuration storage (Doctrine, Redis, etc)
  • Retry / Remove / Sort policies
  • Background worker
  • Symfony/Messenger integration
  • Mercure integration

Installation

Make sure Composer is installed globally, as explained in the installation chapter of the Composer documentation.

$ composer require guikingone/scheduler-bundle

Quick start

Once installed, time to update the config/bundles.php:

// config/bundles.php

return [
    // ...
    SchedulerBundle\SchedulerBundle::class => ['all' => true],
];

Then configure a transport in config/packages/scheduler.yaml:

# config/packages/scheduler.yaml
scheduler_bundle:
    transport:
        dsn: 'filesystem://first_in_first_out'

Finally, it's time to create a simple task:

# config/packages/scheduler.yaml
scheduler_bundle:
    transport:
        dsn: 'filesystem://first_in_first_out'
    tasks:
        foo:
            type: 'command'
            command: 'cache:clear'
            expression: '*/5 * * * *'
            description: 'A simple cache clear task'
            options:
                env: test

When a task is configured, time to execute it, two approaches can be used:

  • Adding a cron entry * * * * * cd /path-to-your-project && php bin/console scheduler:consume >> /dev/null 2>&1
  • Launching the command scheduler:consume --wait in a background command

Documentation

Comments
  • bug(scheduler): consuming tasks in separate processes

    bug(scheduler): consuming tasks in separate processes

    Task is running multiple times.

    with the following tasks configuration :

    scheduler_bundle:
      transport:
        dsn: 'doctrine://default?execution_mode=first_in_first_out'
      tasks:
        foo:
          type: 'command'
          command: 'app:foo'
          description: '3mins task'
          single_run: true
        bar:
          type: 'command'
          command: 'app:bar'
          description: '1mins task'
          single_run: true
    

    and a cron configuration : * * * * * cd /path-to-your-project && php bin/console scheduler:consume >> /dev/null 2>&1

    the first scheduler:consume output :

       [OK] Task "bar" succeed. (Duration: 1 min, Memory used: 28.0 MiB)
    

    one minute later second call scheduler:consume output :

       [OK] Task "foo" succeed. (Duration: 3 mins, Memory used: 27.9 MiB)
       [OK] Task "bar" succeed. (Duration: 1 min, Memory used: 28.0 MiB)
    

    we can see that the bar task is executed twice. How can we ensure the uniqueness of tasks.

    I hope to be clear enough in my explanation 😄

    bug PHP Under active work scope: scheduler scope: worker 
    opened by jvancoillie 78
  • bug(collector): scheduler panel

    bug(collector): scheduler panel

    Hello it's me again,

    I throw an exception when I consult the profiler (_profiler/latest?panel=scheduler) Capture d’écran 2021-03-31 à 07 38 41

    after having consulted the HTTP entrypoint _tasks?name=activation. maybe it's related to the single_run #45 issue Capture d’écran 2021-03-31 à 07 38 55

    thank you again for your responsiveness

    bug PHP 
    opened by jvancoillie 26
  • Task update ROLLBACK

    Task update ROLLBACK

    I configured a cron every minute like this * * * * * developer /var/www/app/bin/console scheduler:consume

    I defined a single_run chainedTask to run related commands.

    In the logs I have ROLLBACK on the update of the task while it is in progress by a previous cron call. Could the execution of a scheduler:consume on tasks in progress have an impact ?

    below the logs I have on the rollback

    [2021-04-30T17:15:01.506813+00:00] doctrine.DEBUG: SELECT COUNT(DISTINCT t.id) FROM scheduler_tasks t WHERE t.task_name = :name LOCK IN SHARE MODE {":name":"deploy"} []
    [2021-04-30T17:15:01.511597+00:00] app.INFO: A task has been scheduled {"task":"deploy"} []
    [2021-04-30T17:15:01.513026+00:00] doctrine.DEBUG: SELECT COUNT(DISTINCT t.id) FROM scheduler_tasks t WHERE t.task_name = :name LOCK IN SHARE MODE {":name":"import_etablissements"} []
    [2021-04-30T17:15:01.513958+00:00] app.INFO: A task has been scheduled {"task":"import_etablissements"} []
    [2021-04-30T17:15:01.514673+00:00] doctrine.DEBUG: SELECT COUNT(DISTINCT t.id) FROM scheduler_tasks t WHERE t.task_name = :name LOCK IN SHARE MODE {":name":"import_communes"} []
    [2021-04-30T17:15:01.515441+00:00] app.INFO: A task has been scheduled {"task":"import_communes"} []
    [2021-04-30T17:15:01.516140+00:00] doctrine.DEBUG: SELECT COUNT(DISTINCT t.id) FROM scheduler_tasks t WHERE t.task_name = :name LOCK IN SHARE MODE {":name":"import_eleves"} []
    [2021-04-30T17:15:01.516914+00:00] app.INFO: A task has been scheduled {"task":"import_eleves"} []
    [2021-04-30T17:15:01.517692+00:00] doctrine.DEBUG: SELECT COUNT(DISTINCT t.id) FROM scheduler_tasks t WHERE t.task_name = :name LOCK IN SHARE MODE {":name":"import_personnels"} []
    [2021-04-30T17:15:01.518456+00:00] app.INFO: A task has been scheduled {"task":"import_personnels"} []
    [2021-04-30T17:15:01.523958+00:00] doctrine.DEBUG: SELECT COUNT(DISTINCT t.id) FROM scheduler_tasks t LOCK IN SHARE MODE [] []
    [2021-04-30T17:15:01.524758+00:00] doctrine.DEBUG: "START TRANSACTION" [] []
    [2021-04-30T17:15:01.525727+00:00] doctrine.DEBUG: SELECT t.* FROM scheduler_tasks t ORDER BY task_name ASC [] []
    [2021-04-30T17:15:01.576799+00:00] doctrine.DEBUG: "COMMIT" [] []
    [2021-04-30T17:15:01.583190+00:00] app.INFO: The worker has been started {"failedTasks":0,"lastExecutedTask":null} []
    [2021-04-30T17:15:01.584053+00:00] doctrine.DEBUG: SELECT COUNT(DISTINCT t.id) FROM scheduler_tasks t LOCK IN SHARE MODE [] []
    [2021-04-30T17:15:01.584893+00:00] doctrine.DEBUG: "START TRANSACTION" [] []
    [2021-04-30T17:15:01.585379+00:00] doctrine.DEBUG: SELECT t.* FROM scheduler_tasks t ORDER BY task_name ASC [] []
    [2021-04-30T17:15:01.623175+00:00] doctrine.DEBUG: "COMMIT" [] []
    [2021-04-30T17:15:01.631363+00:00] app.INFO: The worker is currently running {"failedTasks":0,"lastExecutedTask":null,"idle":false} []
    [2021-04-30T17:15:01.655304+00:00] doctrine.DEBUG: "START TRANSACTION" [] []
    [2021-04-30T17:15:01.674965+00:00] doctrine.DEBUG: UPDATE scheduler_tasks SET body = :body WHERE task_name = :name {":name":"deploy",":body":"{\"body\":{\"tasks\":[{\"body\": [...]"} []
    [2021-04-30T17:15:01.682368+00:00] doctrine.DEBUG: "ROLLBACK" [] []
    [2021-04-30T17:15:01.683534+00:00] doctrine.DEBUG: "START TRANSACTION" [] []
    [2021-04-30T17:15:01.688333+00:00] doctrine.DEBUG: UPDATE scheduler_tasks SET body = :body WHERE task_name = :name {":name":"deploy",":body":"{\"body\":{\"tasks\":[{\"body\": [...]"} []
    [2021-04-30T17:15:01.690061+00:00] doctrine.DEBUG: "ROLLBACK" [] []
    [2021-04-30T17:15:01.691203+00:00] app.INFO: A task execution has failed {"task":"deploy"} []
    [2021-04-30T17:15:01.695355+00:00] app.INFO: The worker is currently running {"failedTasks":1,"lastExecutedTask":"deploy","idle":true} []
    [2021-04-30T17:15:01.695964+00:00] app.INFO: The worker has been stopped {"failedTasks":1,"lastExecutedTask":"deploy"} []
    
    bug PHP Improvement 
    opened by jvancoillie 19
  • bug(command): scheduler:consume --wait no longer works

    bug(command): scheduler:consume --wait no longer works

    Hi @Guikingone,

    When I run the scheduler in --wait mode it gives me back control and no longer waits every minute

    developer@0461266b29f1:/var/www/app$ bin/console scheduler:consume --wait -vv
    
     ! [NOTE] The worker will wait for tasks every minutes
    
     // Quit the worker with CONTROL-C.
    
    09:48:26 INFO      [app] The worker has been started ["failedTasks" => 0,"lastExecutedTask" => null]
    09:48:26 INFO      [app] The worker has been stopped ["failedTasks" => 0,"lastExecutedTask" => null]
    developer@0461266b29f1:/var/www/app$
    bug scope: worker scope: command 
    opened by jvancoillie 17
  • bug(task): ChainedTask no longer works

    bug(task): ChainedTask no longer works

    the execution of the subtasks no longer works.

    with the following configuration, only the bar task seems to run.

    scheduler_bundle:
      transport:
        dsn: 'doctrine://default?execution_mode=first_in_first_out'
      tasks:
        chained:
          type: 'chained'
          output: true
          description: 'chained with 2 tasks'
          tasks:
            foo:
              type: 'command'
              command: 'app:foo'
              description: 'command foo chained'
              output: true
            bar:
              type: 'command'
              command: 'app:bar'
              description: 'command bar in chained'
              output: true
        task5:
          type: 'command'
          command: 'app:foo'
          description: 'command task 5'
          output: false
        task6:
          type: 'command'
          command: 'app:bar'
          description: 'command task 6'
          output: false
    
    Capture d’écran 2021-05-22 à 18 20 59 bug PHP BC breaks scope: worker 
    opened by jvancoillie 15
  • bug(bridge): Doctrine::update()

    bug(bridge): Doctrine::update()

    Hi,

    Task update fails due to lock mode (getWriteLockSQL()) which I think is only available on a SQL SELECT command.

    that throws the following exception

    SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'FOR UPDATE' at line 1
    
    bug PHP Bridge 
    opened by jvancoillie 14
  • bug(transport) FilesystemTransport - FIFO sort test failed

    bug(transport) FilesystemTransport - FIFO sort test failed

    If FIFO sort does not work on your PR, be sure to have rebased against main, if the issue still occurs, consider opening a new PR 🙂

    my branch is up to date with upstream, the testTaskListCanBeRetrieved failed.

    1) Tests\SchedulerBundle\Transport\FilesystemTransportTest::testTaskListCanBeRetrieved
    Failed asserting that two strings are identical.
    --- Expected
    +++ Actual
    @@ @@
    -'foo'
    +'bar'
    

    Originally posted by @Guikingone in https://github.com/Guikingone/SchedulerBundle/issues/93#issuecomment-835801076

    bug PHP scope: schedule policy 
    opened by jvancoillie 13
  • bug ( Notice: Undefined index: transport ) - configuring guikingone/scheduler-bundle

    bug ( Notice: Undefined index: transport ) - configuring guikingone/scheduler-bundle

    Hello,

    I have a little problem during the installation of the bundle. I get an error in

    Using version ^0.4.0 for guikingone/scheduler-bundle
    ./composer.json has been updated
    Running composer update guikingone/scheduler-bundle
    Loading composer repositories with package information
    Updating dependencies
    Lock file operations: 3 installs, 0 updates, 0 removals
      - Locking dragonmantank/cron-expression (v3.1.0)
      - Locking guikingone/scheduler-bundle (0.4.0)
      - Locking symfony/lock (v5.2.6)
    Writing lock file
    Installing dependencies from lock file (including require-dev)
    Package operations: 3 installs, 0 updates, 0 removals
      - Installing symfony/lock (v5.2.6): Extracting archive
      - Installing dragonmantank/cron-expression (v3.1.0): Extracting archive
      - Installing guikingone/scheduler-bundle (0.4.0): Extracting archive
    Generating autoload files
    composer/package-versions-deprecated: Generating version class...
    composer/package-versions-deprecated: ...done generating version class
    101 packages you are using are looking for funding.
    Use the `composer fund` command to find out more!
    Endroid Installer detected project type "symfony"
    
    Symfony operations: 2 recipes (ddf663939bb7c4e416e77206b09ab2a6)
      - Configuring symfony/lock (>=5.2): From github.com/symfony/recipes:master
      - Configuring guikingone/scheduler-bundle (>=0.4.0): From auto-generated recipe
    Synchronizing package.json with PHP packages
    Don't forget to run npm install --force or yarn install --force to refresh your JavaScript dependencies!
    Executing script cache:clear [KO]
     [KO]
    Script cache:clear returned with error code 1
    !!  
    !!  In SchedulerBundleExtension.php line 228:
    !!                                        
    !!    Notice: Undefined index: transport  
    !!                                        
    !!  
    !!  
    Script @auto-scripts was called via post-update-cmd
    
    Installation failed, reverting ./composer.json and ./composer.lock to their original content.
    

    Where does this problem come from?

    bug PHP 
    opened by Mederick-WXN 13
  • symfony cache:clear failed without database

    symfony cache:clear failed without database

    Hi @Guikingone, hope you are doing well 😉

    Since the upgrade of the bundle to version 0.5.2 the CI build job no longer work because during the composer install a cache: clear is called and returns the error:

    Executing script cache:clear [KO]
     [KO]
    Script cache:clear returned with error code 1
    !!  
    !!   // Clearing the cache for the prod environment with debug                      
    !!   // false                                                                       
    !!  
    !!  14:35:45 CRITICAL  [console] Error thrown while running command "cache:clear". Message: "An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused" ["exception" => Doctrine\DBAL\Exception\ConnectionException { …},"command" => "cache:clear","message" => "An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused"]
    !!  
    !!  In AbstractMySQLDriver.php line 112:
    !!                                                                                
    !!    An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused  
    !!                                                                                
    !!  
    !!  In Exception.php line 18:
    !!                                               
    !!    SQLSTATE[HY000] [2002] Connection refused  
    !!                                               
    !!  
    !!  In PDOConnection.php line 39:
    !!                                               
    !!    SQLSTATE[HY000] [2002] Connection refused  
    !!                                               
    !!  
    !!  cache:clear [--no-warmup] [--no-optional-warmers]
    !!  
    !!  
    Script @auto-scripts was called via post-install-cmd
    make: *** [Makefile:246: vendor/autoload.php] Error 1
    

    I had to downgrade to version 0.4.9 to no longer have the problem 😢

    bug PHP scope: scheduler scope: transport 
    opened by jvancoillie 10
  • WARNING: The task

    WARNING: The task "..." cannot be created as an existing one has been found

    Hi there, it's me again :-)

    I finally tested the doctrine transport with release version 0.4.1. Everything seems to work fine so far. A new table has been created successfully by using auto_setup=true. Thank you very much :-)

    One little thing: With every run of scheduler:consume the following warning is being logged for each task: WARNING: The task "..." cannot be created as an existing one has been found The warning is being logged in the Connection.php create($task) function. I guess this isn't the intended behavior, right?

    Best regards Marcel

    PHP Improvement 
    opened by MarcelWilhelmi 10
  • bug(transport): using Debug pack resulting

    bug(transport): using Debug pack resulting "datetime normalizer" error

    I'm following the quick start guide, and it runs successfully

    symfony console scheduler:list
    
    
     [OK] 1 task found
    
    
    +-------------+------+---------------------------+-------------+---------------------+---------------------------+-------------------------+-----------------------------+---------+------+
    | Type        | Name | Description               | Expression  | Last execution date | Next execution date       | Last execution duration | Last execution memory usage | State   | Tags |
    +-------------+------+---------------------------+-------------+---------------------+---------------------------+-------------------------+-----------------------------+---------+------+
    | CommandTask | foo  | A simple cache clear task | */5 * * * * | Not executed        | 2022-10-19T11:40:00+00:00 | Not tracked             | Not tracked                 | enabled |      |
    +-------------+------+---------------------------+-------------+---------------------+---------------------------+-------------------------+-----------------------------+---------+------+
    

    Then I installed the debug pack

    composer require --dev debug
    

    Once installed, I try again the list command it returned the error

    symfony console scheduler:list
    
    In Connection.php line 170:
    
      The datetime normalizer is not an instance of Symfony\Component\Serializer\Normalizer\DateTimeNormalizer.
    
    
    In TaskNormalizer.php line 82:
    
      The datetime normalizer is not an instance of Symfony\Component\Serializer\Normalizer\DateTimeNormalizer.
    
    

    Then I try to remove all Debug pack dependencies

    composer remove symfony/debug-bundle symfony/web-profiler-bundle symfony/monolog-bundle
    

    And then run back the list command, and it works again

    symfony console scheduler:list
    
    
     [OK] 1 task found
    
    
    +-------------+------+---------------------------+-------------+---------------------+---------------------------+-------------------------+-----------------------------+---------+------+
    | Type        | Name | Description               | Expression  | Last execution date | Next execution date       | Last execution duration | Last execution memory usage | State   | Tags |
    +-------------+------+---------------------------+-------------+---------------------+---------------------------+-------------------------+-----------------------------+---------+------+
    | CommandTask | foo  | A simple cache clear task | */5 * * * * | Not executed        | 2022-10-19T11:40:00+00:00 | Not tracked             | Not tracked                 | enabled |      |
    +-------------+------+---------------------------+-------------+---------------------+---------------------------+-------------------------+-----------------------------+---------+------+
    
    bug PHP scope: transport 
    opened by suabahasa 9
  • Use of mutation testing in SchedulerBundle - Help needed

    Use of mutation testing in SchedulerBundle - Help needed

    Hello there!

    My name is Ana. I noted that you use the mutation testing tool infection in the project. I am a postdoctoral researcher at the University of Seville (Spain), and my colleagues and I are studying how mutation testing tools are used in practice. With this aim in mind, we have analysed over 3,500 public GitHub repositories using mutation testing tools, including yours! This work has recently been published in a journal paper available at https://link.springer.com/content/pdf/10.1007/s10664-022-10177-8.pdf.

    To complete this study, we are asking for your help to understand better how mutation testing is used in practice, please! We would be extremely grateful if you could contribute to this study by answering a brief survey of 21 simple questions (no more than 6 minutes). This is the link to the questionnaire https://forms.gle/FvXNrimWAsJYC1zB9.

    Drop me an e-mail if you have any questions or comments ([email protected]). Thank you very much in advance!!

    opened by belene 0
  • feat(core): ClockInterface support started

    feat(core): ClockInterface support started

    | Q | A | ---------------- | --- | PHP version? | >= 8.0 | Bundle version? | 0.11.0 | Symfony version? | >= 5.4 | New feature? | yes | Bug fix? | no | Discussion? | # ...

    PHP scope: scheduler scope: worker 
    opened by Guikingone 0
  • refactor(eventlistener): StopWorkerOnNextTaskSubscriber improved

    refactor(eventlistener): StopWorkerOnNextTaskSubscriber improved

    | Q | A | ---------------- | --- | PHP version? | >= 8.0 | Bundle version? | 0.10.2 | Symfony version? | >= 5.4 | New feature? | no | Bug fix? | yes | Discussion? | # ...

    PHP scope: worker scope: command Bug fix 
    opened by Guikingone 0
  • bug(command): scheduler:stop-worker not stopping when wait and force arguments present

    bug(command): scheduler:stop-worker not stopping when wait and force arguments present

    Situation

    Testing with my own setup as described in Issue 295, the newly added scheduler:stop-worker command does not seem to have any effect on actually stopping the worker when the scheduler:consume command is being run with the --wait and --force arguments.

    Version: 0.10.0

    bug PHP scope: worker scope: command 
    opened by ToshY 5
  • feat(core): extension started

    feat(core): extension started

    | Q | A | ---------------- | --- | PHP version? | X.X | Bundle version? | X.X.X | Symfony version? | X.X.X | New feature? | yes/no | Bug fix? | yes/no | Discussion? | # ...

    PHP Build 
    opened by Guikingone 0
  • refactor(worker): middleware call moved

    refactor(worker): middleware call moved

    | Q | A | ---------------- | --- | PHP version? | >= 8.0 | Bundle version? | 0.10.0 | Symfony version? | >= 5.4 | New feature? | no | Bug fix? | yes | Discussion? | # ...

    PHP Bug fix 
    opened by Guikingone 0
Releases(0.10.1)
  • 0.10.1(Nov 17, 2022)

    Description

    Builds

    Deps

    • Deps improved (#300)

    Documentation

    Best practices

    • best_practices.md updated (#301) - Thanks @asuri0n

    API

    No BC Breaks introduced via this release.

    Source code(tar.gz)
    Source code(zip)
  • 0.10.0(Sep 5, 2022)

    Description

    Features

    Command

    • StopWorkerCommand introduced (#296)

    Code Refactoring

    Scheduler

    • Reboot handling improved (#298)

    Builds

    Composer

    • Infection extension support added (#293) - Thanks @jmsche

    Docker

    • Pin apt versions for Dockerfile (#291) - Thanks @jmsche

    API

    No BC Breaks introduced via this release.

    Source code(tar.gz)
    Source code(zip)
  • 0.9.4(Jun 23, 2022)

    Description

    Bug Fixes

    Bridge
    • Exception thrown during task creation (#287) - Thanks @babeuloula

    Code Refactoring

    Bridge
    • Connection improved (#282)
    Build
    • Improve .gitattributes for composer install (#270) - Thanks @jmsche
    Command
    • Attribute introduced (#281)
    Core
    • Improvement on command display && normalizer condition (#277)
    • Scheduler scheduling phase improved (#286)
    Serializer
    • Normalizers deprecations removed (#266) - Thanks @jmsche

    Builds

    Deps
    • Dev depdencies updated (#262)
    Security
    • Replace snyk with symfonycorp/security-checker-action (#267) - Thanks @jmsche

    Continuous Integrations

    Docker
    • Fix hadolint workflow (#268) - Thanks @jmsche
    Github
    • Simplify workflows (#271) - Thanks @jmsche
    Tools
    • MacOS dropped for rector & static analysis workflows (#269) - Thanks @jmsche
    Doc
    • remove $ so copy to clipboard works (#273) - Thanks @tacman

    API

    No BC Breaks introduced via this release.

    Source code(tar.gz)
    Source code(zip)
  • 0.9.3(Jun 1, 2022)

    Description

    Features

    Command

    • Suggestions implemented (#256)

    Code Refactoring

    Core

    • Improvements on serializer usage (#261)

    Serializer

    • Support for TraceableNormalizer && TraceableDenormalizer added (#260)

    API

    No BC Breaks introduced via this release.

    Source code(tar.gz)
    Source code(zip)
  • 0.9.2(Apr 28, 2022)

    Description

    Bug Fixes

    Tests

    • Improvements (#247)

    Code Refactoring

    Core

    • Static analysis improved (#244)
    • Static analysis improved + named arguments improved (#246)

    Builds

    Rector

    • Version fixed (#250)

    API

    No BC Breaks introduced via this release.

    Source code(tar.gz)
    Source code(zip)
  • 0.9.1(Apr 27, 2022)

  • 0.9.0(Apr 26, 2022)

    Description

    ⚠ BREAKING CHANGES

    Features

    Core

    • Fibers support (#235)

    Expression

    • Add ExactExpressionBuilder (#224) - Thanks @babeuloula

    Tasks

    • Add option deleteAfterExecute (#227) - Thanks @babeuloula

    Code Refactoring

    Bridge

    • Postgres support improved (#233)

    Core

    • Fibers improvement (#238)
    • Static analysis fixed (#239)
    • Transport configuration support (#202)

    Dic

    • SchedulerAwareInterface started (#221)

    Worker

    • ExecutionPolicy introduced (#237)

    Continuous Integrations

    Php

    • 8.2 support started (#236)
    Source code(tar.gz)
    Source code(zip)
  • 0.8.1(Feb 16, 2022)

  • 0.8.0(Dec 6, 2021)

    Description

    ⚠ BREAKING CHANGES

    Features

    Middleware

    • Registry introduced (#203)

    Transport

    • Registry introduced (#212)

    Builds

    Docker

    • Configuration started (#204)

    Php

    • 8.1 added && Symfony 6.0 (#31)
    Source code(tar.gz)
    Source code(zip)
  • 0.7.1(Oct 14, 2021)

  • 0.7.0(Oct 1, 2021)

    Description

    ⚠ BREAKING CHANGES

    Features

    Core
    • Task sort improved (#183)
    DIC
    • Configuration improved (#184)
    Scheduler
    • Task execution preemption (#145)

    Code Refactoring

    Worker
    • Improvements on stop (#186)
    • WorkerConfiguration introduced (#187)
    Source code(tar.gz)
    Source code(zip)
  • 0.6.2(Aug 31, 2021)

  • 0.6.1(Aug 18, 2021)

  • 0.6.0(Aug 13, 2021)

  • 0.5.5(Jul 10, 2021)

  • 0.5.4(Jul 8, 2021)

    Description

    Features

    Command
    • --force option added to scheduler:consume (#161) (81b23a)

    Code Refactoring

    DIC
    • MessengerTaskRunner injection fixed (#163) (a27a85)

    API

    No BC Breaks introduced via this release.

    Source code(tar.gz)
    Source code(zip)
  • 0.5.3(Jun 20, 2021)

  • 0.5.2(Jun 17, 2021)

  • 0.5.1(Jun 8, 2021)

  • 0.5.0(Jun 7, 2021)

    Description

    ⚠ BREAKING CHANGES

    Worker|task|runner|transport
    • Worker has been refactored & runners API has been changed (a4bf18)

    Features

    Command
    • ExecuteTaskCommand introduced (#72) (866e6c)
    • ListTaskCommand - display substasks (#127) (a21379) - Thanks @jvancoillie
    Core

    Code Refactoring

    Command
    • ExecuteTaskCommand - name option shortcut removed (#136) (4f17ce)
    Serializer
    • Custom DateTimeNormalizer FORMAT_KEY to store microseconds (#123) (0256b2) - Thanks @jvancoillie
    Worker
    • Fork improved (#137) (d067a3)
    Worker|runner
    • Improvements (#103) (1f6d4b)
    Worker|task|runner|transport
    • Chained tasks handling + LazyTaskList introduced (#126) (a4bf18)

    Builds

    Composer
    • Symfony 5.3 support (#130) (eba50a)
    Source code(tar.gz)
    Source code(zip)
  • 0.4.9(May 13, 2021)

    Description

    • BatchPolicy sort improved (see https://github.com/Guikingone/SchedulerBundle/pull/120) - Thanks @jvancoillie

    Extra

    • The whole improvements tagged in 0.4.8 are also released via this release.

    API

    No BC Breaks introduced via this release.

    Source code(tar.gz)
    Source code(zip)
  • 0.4.8(May 12, 2021)

    Description

    • Scheduler::getDueTasks() fixed (see https://github.com/Guikingone/SchedulerBundle/pull/117)
    • Tools improved (see https://github.com/Guikingone/SchedulerBundle/pull/99)

    API

    No BC Breaks introduced via this release.

    Source code(tar.gz)
    Source code(zip)
  • 0.4.7(May 12, 2021)

    Description

    • Due tasks filter fixed (see https://github.com/Guikingone/SchedulerBundle/pull/114)

    API

    No BC Breaks introduced via this release.

    Source code(tar.gz)
    Source code(zip)
  • 0.4.6(May 11, 2021)

  • 0.4.5(May 11, 2021)

    Description

    • Due tasks filter improved (see https://github.com/Guikingone/SchedulerBundle/pull/107)

    API

    No BC Breaks introduced via this release.

    Source code(tar.gz)
    Source code(zip)
  • 0.4.4(May 5, 2021)

    Description

    • Doctrine bridge sort fixed (see https://github.com/Guikingone/SchedulerBundle/pull/95)
    • Task lock management improved (see https://github.com/Guikingone/SchedulerBundle/pull/91)
    • Chained sub-tasks sort (see https://github.com/Guikingone/SchedulerBundle/pull/89) - Thanks @jvancoillie
    • Tests improvements on Doctrine bridge (see https://github.com/Guikingone/SchedulerBundle/pull/66)
    • Tools dependencies upgraded (see https://github.com/Guikingone/SchedulerBundle/pull/97) - Thanks @jmsche
    • CI improvements (see https://github.com/Guikingone/SchedulerBundle/pull/98) - Thanks @jmsche
    • README.md improved (see https://github.com/Guikingone/SchedulerBundle/pull/100) - Thanks @jmsche

    API

    No BC Breaks introduced via this release.

    Source code(tar.gz)
    Source code(zip)
  • 0.4.3(Apr 29, 2021)

    Description

    • FIFO sort fixed (see https://github.com/Guikingone/SchedulerBundle/pull/75)
    • DeadlinePolicy sort improved (see https://github.com/Guikingone/SchedulerBundle/pull/80)
    • Doctrine connection extra logger call removed (see https://github.com/Guikingone/SchedulerBundle/pull/81)
    • Configuration set for reference dump (see https://github.com/Guikingone/SchedulerBundle/pull/83) - Thanks @jvancoillie

    API

    No BC Breaks introduced via this release.

    Source code(tar.gz)
    Source code(zip)
  • 0.4.2(Apr 26, 2021)

    Description

    • Fluent expression fixed (see https://github.com/Guikingone/SchedulerBundle/pull/62) - Thanks @babeuloula
    • Worker improvements (see https://github.com/Guikingone/SchedulerBundle/pull/61)

    API

    No BC Breaks introduced via this release.

    Source code(tar.gz)
    Source code(zip)
  • 0.4.1(Apr 14, 2021)

    Description

    • Extension fixed on transport access (see https://github.com/Guikingone/SchedulerBundle/pull/57)

    API

    No BC Breaks introduced via this release.

    Source code(tar.gz)
    Source code(zip)
  • 0.4.0(Apr 12, 2021)

    Description

    • Doctrine lock & worker single_run fix (see https://github.com/Guikingone/SchedulerBundle/pull/46)
    • Snyk analyze added (see https://github.com/Guikingone/SchedulerBundle/pull/48)
    • Doctrine auto_setup fix (see https://github.com/Guikingone/SchedulerBundle/pull/43)
    • Cache transport added (see https://github.com/Guikingone/SchedulerBundle/pull/16)
    • Core improvements (see https://github.com/Guikingone/SchedulerBundle/pull/16)
    • Core improvements (see https://github.com/Guikingone/SchedulerBundle/pull/52)
    Source code(tar.gz)
    Source code(zip)
Owner
Guillaume Loulier
@sensiolabs Developer, @php fan and forever learner, I teach the web of tomorrow at @OpenClassrooms and share my knowledge through the web, oh and i love pizza
Guillaume Loulier
This is an implementation of PSR specification. It allows you to send and consume message with Redis store as a broker.

This is an implementation of PSR specification. It allows you to send and consume message with Redis store as a broker.

Enqueue 35 Nov 4, 2022
A PHP 7.4+ library to consume the Confluent Schema Registry REST API

A PHP 7.4+ library to consume the Confluent Schema Registry REST API. It provides low level functions to create PSR-7 compliant requests that can be used as well as high level abstractions to ease developer experience.

Flix.TECH 38 Sep 1, 2022
EasyRdf is a PHP library designed to make it easy to consume and produce RDF.

EasyRdf EasyRdf is a PHP library designed to make it easy to consume and produce RDF. It was designed for use in mixed teams of experienced and inexpe

EasyRdf 578 Dec 23, 2022
Tars is a high-performance RPC framework based on name service and Tars protocol, also integrated administration platform, and implemented hosting-service via flexible schedule.

TARS - A Linux Foundation Project TARS Foundation Official Website TARS Project Official Website WeChat Group: TARS01 WeChat Offical Account: TarsClou

THE TARS FOUNDATION PROJECTS 9.6k Jan 1, 2023
Dispatcher is a Laravel artisan command scheduling tool used to schedule artisan commands within your project so you don't need to touch your crontab when deploying.

Dispatcher Dispatcher allows you to schedule your artisan commands within your Laravel project, eliminating the need to touch the crontab when deployi

Indatus 1.1k Dec 21, 2022
A Symfony Feature Flag Bundle which easily allows you to configure and use your favorite feature flag provider.

Metro Markets FF Metro Markets FF is a Feature Flag Symfony Bundle. It easily allows you to configure and use your favorite feature flag provider. Ins

METRO Markets 14 May 23, 2022
Tabler.io bundle for Symfony - a backend/admin theme for easy integration

Tabler Bundle for Symfony This repository contains a Symfony bundle, integrating the fantastic Tabler.io HTML Template into your Symfony project. It s

Kevin Papst 22 Jan 2, 2023
Symfony bundle for class/method memoization

Symfony service memoization bundle This bundle provides memoization for your services - every time you call the same method with the same arguments a

Dominik Chrástecký 16 Oct 31, 2022
A Symfony2 bundle that integrates Select2 as a drop-in replacement for a standard entity field on a Symfony form.

select2entity-bundle Introduction This is a Symfony bundle which enables the popular Select2 component to be used as a drop-in replacement for a stand

Ross Keatinge 214 Nov 21, 2022
Symfony Bundle to create HTML tables with bootstrap-table for Doctrine Entities.

HelloBootstrapTableBundle This Bundle provides simple bootstrap-table configuration for your Doctrine Entities. Used bootstrap-table version 1.18.3. I

Sebastian B 7 Nov 3, 2022
Laravel style FormRequests for Symfony; inspired by adamsafr/form-request-bundle

Somnambulist Form Request Bundle An implementation of form requests from Laravel for Symfony based on the original work by Adam Sapraliev. Requirement

Somnambulist Tech 1 Dec 14, 2021
RSQueue Bundle for Symfony

RSQueueBundle for Symfony Simple queuing system based on Redis Table of contents Installing/Configuring Tags Installing Redis Installing PHPRedis Inst

RSQueue 11 Oct 8, 2018
🕧 Provides an scheduler bundle for symfony framework.

?? PHP Scheduler Bundle Provides the integration of the PHP Scheduler library into Symfony Framework. Installation Run composer require flexic/schedul

FlexicSystems 3 Nov 15, 2022
Execute time consuming tasks as late as possible in a request

Procrastinator for PHP: do stuff later A few classes to help you executing complicated tasks (like sending mails) later. Example using fastcgi_finish_

Lars Strojny 62 Apr 29, 2021
PHP Text Analysis is a library for performing Information Retrieval (IR) and Natural Language Processing (NLP) tasks using the PHP language

php-text-analysis PHP Text Analysis is a library for performing Information Retrieval (IR) and Natural Language Processing (NLP) tasks using the PHP l

null 464 Dec 28, 2022
Simple PHP/Laravel app that displays Todoist tasks in a view designed for a Kindle Touch

productivity-dashboard Just a simple PHP/Laravel app that retrieves (so far) tasks from Todoist and displays them in a simple view designed for a Kind

null 7 Dec 9, 2022
Simple PHP/Laravel app that displays Todoist tasks in a view designed for a Kindle Touch

productivity-dashboard Just a simple PHP/Laravel app that retrieves (so far) tasks from Todoist and displays them in a simple view designed for a Kind

null 3 Dec 27, 2021
Magento 2 specific tasks for Capistrano 3

Capistrano::Magento2 A Capistrano extension for Magento 2 deployments. Takes care of specific Magento 2 requirements and adds tasks specific to the Ma

David Alger 223 Dec 2, 2022
Composer plugin to automate the most common tasks of applications.

Narrowspark Automatic Narrowspark Automatic automates the most common tasks of applications, like installing and removing bundles or providers, copyin

Narrowspark 12 Sep 9, 2022