PHPackages                             synolia/sylius-scheduler-command-plugin - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. synolia/sylius-scheduler-command-plugin

ActiveSylius-plugin[Utility &amp; Helpers](/categories/utility)

synolia/sylius-scheduler-command-plugin
=======================================

Scheduler Command Plugin.

v4.0.2(5mo ago)34380.8k↓49.5%20[5 issues](https://github.com/synolia/SyliusSchedulerCommandPlugin/issues)[1 PRs](https://github.com/synolia/SyliusSchedulerCommandPlugin/pulls)MITPHPPHP ^8.2CI failing

Since Jan 14Pushed 3mo ago10 watchersCompare

[ Source](https://github.com/synolia/SyliusSchedulerCommandPlugin)[ Packagist](https://packagist.org/packages/synolia/sylius-scheduler-command-plugin)[ RSS](/packages/synolia-sylius-scheduler-command-plugin/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (10)Dependencies (32)Versions (35)Used By (0)

[![License](https://camo.githubusercontent.com/54c92636848d3db48bb140b9437a22cad225d6b03a1d75ae1600b21af3c37594/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f73796e6f6c69612f73796c6975732d7363686564756c65722d636f6d6d616e642d706c7567696e2e737667)](https://github.com/synolia/SyliusSchedulerCommandPlugin/blob/main/LICENSE)[![CI - Analysis](https://github.com/synolia/SyliusSchedulerCommandPlugin/actions/workflows/analysis.yaml/badge.svg?branch=main)](https://github.com/synolia/SyliusSchedulerCommandPlugin/actions/workflows/analysis.yaml)[![CI - Sylius](https://github.com/synolia/SyliusSchedulerCommandPlugin/actions/workflows/sylius.yaml/badge.svg?branch=main)](https://github.com/synolia/SyliusSchedulerCommandPlugin/actions/workflows/sylius.yaml)[![Version](https://camo.githubusercontent.com/9171f393e1795a4050d930e72a9cfe92a41e423e9df61753f2cfd4662debaa01/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f73796e6f6c69612f73796c6975732d7363686564756c65722d636f6d6d616e642d706c7567696e2e737667)](https://packagist.org/packages/synolia/sylius-scheduler-command-plugin)[![Total Downloads](https://camo.githubusercontent.com/8103e27aab52bd32f7eb862a4e7a29167931dc95c7c4f459f1d973b97ef27a6b/68747470733a2f2f706f7365722e707567782e6f72672f73796e6f6c69612f73796c6975732d7363686564756c65722d636f6d6d616e642d706c7567696e2f646f776e6c6f616473)](https://packagist.org/packages/synolia/sylius-scheduler-command-plugin)

 [    ![Sylius Logo.](https://camo.githubusercontent.com/ea9dddc934264aa7ec01cf3202c500f3d8b04448bce2571bdc74230efddda88f/68747470733a2f2f6d656469612e73796c6975732e636f6d2f73796c6975732d6c6f676f2d3830302e706e67)  ](https://sylius.com)

Scheduler Command Plugin
========================

[](#scheduler-command-plugin)

 [![](https://camo.githubusercontent.com/5b98e02f3693c16fd3f40037251d70ca5e1ecd2a11608dd21c9c7e3933b8942e/68747470733a2f2f73796c6975732e636f6d2f6173736574732f62616467652d617070726f7665642d62792d73796c6975732e706e67)](https://camo.githubusercontent.com/5b98e02f3693c16fd3f40037251d70ca5e1ecd2a11608dd21c9c7e3933b8942e/68747470733a2f2f73796c6975732e636f6d2f6173736574732f62616467652d617070726f7665642d62792d73796c6975732e706e67)

Schedule Symfony Commands in your Sylius admin panel.

Commands list
-------------

[](#commands-list)

[![Commands](/doc/images/Commands.png "Commands")](/doc/images/Commands.png)

Scheduled Commands list
-----------------------

[](#scheduled-commands-list)

[![Scheduled Commands](/doc/images/ScheduledCommands.png "Scheduled Commands")](/doc/images/ScheduledCommands.png)

Features
--------

[](#features)

- See the list of planned command
- Add, edit, enable/disable or delete scheduled commands
- For each command, you have to define :
    - Name
    - Selected Command from the list of Symfony commands
    - Based on Cron schedule expression see [Cron formats](https://abunchofutils.com/u/computing/cron-format-helper/)
    - Output Log file prefix (optional)
    - Priority (highest is priority)
- Run the Command immediately (at the next passage of the command `synolia:scheduler-run`)
- Run a Command juste one time (from history page clic on `Launch a command` button)
- Download or live view of log files directly from the admin panel
- Define commands with a Factory (from a Doctrine migration, for example)

Requirements
------------

[](#requirements)

VersionPHP^8.2Sylius^1.12Installation
------------

[](#installation)

1. Add the bundle and dependencies in your composer.json :

    ```
     composer config extra.symfony.allow-contrib true
     composer req synolia/sylius-scheduler-command-plugin

    ```
2. Apply migrations to your database:

    ```
     bin/console doctrine:migrations:migrate

    ```
3. Launch Run command in your Crontab

    ```
     * * * * * /_PROJECT_DIRECTORY_/bin/console synolia:scheduler-run

    ```
4. (optional) Showing humanized cron expression

    ```
     composer require lorisleiva/cron-translator

    ```
5. Till `symfony/recipes-contrib` is updated for the v3, you must add `sylius_scheduler_command.yaml` from `install/Application/config/{packages,routes}` to your project by respecting the same folder architecture.

    ```
     cp -R vendor/synolia/sylius-scheduler-command-plugin/install/Application/config/packages/* config/packages/
     cp -R vendor/synolia/sylius-scheduler-command-plugin/install/Application/config/routes/* config/routes/

    ```

Usage
-----

[](#usage)

- Log into admin panel
- Click on `Scheduled commands` in the Scheduled commands section in main menu to manage your Scheduled commands
- Click on `Scheduled commands history` in the Scheduled commands section in main menu to see history of commands

Fixtures
--------

[](#fixtures)

Inside sylius fixture file `config/packages/sylius_fixtures.yaml` you can add scheduled command fixtures to your suite.

```
sylius_fixtures:
    suites:
        my_fixture_suite:
            fixtures:
                scheduler_command:
                    options:
                        scheduled_commands:
                            -
                                name: 'Reset Sylius'
                                command: 'sylius:fixtures:load'
                                cronExpression: '0 0 * * *'
                                logFilePrefix: 'reset'
                                priority: 0
                                enabled: true
                            -
                                name: 'Cancel Unpaid Orders'
                                command: 'sylius:cancel-unpaid-orders'
                                cronExpression: '0 0 * * *'
                                priority: 1
                                enabled: false
```

Commands
--------

[](#commands)

### synolia:scheduler-run

[](#synoliascheduler-run)

Execute scheduled commands.

- options:
    - --id (run only a specific scheduled command)

**Run all scheduled commands :** php bin/console synolia:scheduler-run

**Run one scheduled command :** php bin/console synolia:scheduler-run --only-one

**Run a specific scheduled command :** php bin/console synolia:scheduler-run --id=5

Is it possible to choose the timezone of the command execution by setting the `SYNOLIA_SCHEDULER_PLUGIN_TIMEZONE` environment variable, example:

```
SYNOLIA_SCHEDULER_PLUGIN_TIMEZONE=Europe/Paris

```

### synolia:scheduler:purge-history

[](#synoliaschedulerpurge-history)

Purge scheduled command history greater than {X} days old.

- options:
    - --all (purge everything)
    - --days (number of days to keep)
    - --state (array of schedule states)
    - --dry-run

**Example to remove all finished and in error scheduled commands after 7 days :**

php bin/console synolia:scheduler:purge-history --state=finished --state=error --days=7

Optional services
-----------------

[](#optional-services)

```
services:
...
    # By enabling this service, it will be requested to vote after the other EveryMinuteIsDueChecker checker.
    # Using some cloud providers, even if the master cron is set to run every minute, it is actually not run that often
    # This service allows you to set a soft threshold limit, so if your provider is actually running the master cron every 5 minutes
    # This service will execute the cron if we are still in the threshold limit ONLY IF it was not already executed another time in the same range.
    #
    # CONFIGURATION SCENARIO: cron set to be run at 01:07 in the scheduler command plugin
    #
    # SCENARIO CASES AT 1 CRON PASS EVERY 5 MINUTES FROM THE PROVIDER
    # cron passes at 01:04 - 1..5 minutes: IS NOT DUE
    # cron passes at 01:05 - 1..5 minutes: IS NOT DUE
    # cron passes at 01:06 - 1..5 minutes: IS NOT DUE
    # cron passes at 01:07 - 1..5 minutes: IS DUE (but it should already be handled by EveryMinuteIsDueChecker)
    # cron passes at 01:08 - 1..5 minutes: IS DUE
    # cron passes at 01:09 - 1..5 minutes: IS DUE #should not if another has started during the threshold period
    # cron passes at 01:10 - 1..5 minutes: IS DUE #should not if another has started during the threshold period
    # cron passes at 01:11 - 1..5 minutes: IS DUE #should not if another has started during the threshold period
    # cron passes at 01:12 - 1..5 minutes: IS DUE #should not if another has started during the threshold period
    # cron passes at 01:13 - 1..5 minutes: IS NOT DUE
    Synolia\SyliusSchedulerCommandPlugin\Checker\SoftLimitThresholdIsDueChecker:
        tags:
            - { name: !php/const Synolia\SyliusSchedulerCommandPlugin\Checker\IsDueCheckerInterface::TAG_ID }
        #optionnal, default value is 5 minutes
        arguments:
            $threshold: 5 #soft limit threshold in minutes
```

Development
-----------

[](#development)

See [How to contribute](CONTRIBUTING.md).

License
-------

[](#license)

This library is under the MIT license.

Credits
-------

[](#credits)

Developed by [Synolia](https://synolia.com/).

###  Health Score

60

—

FairBetter than 98% of packages

Maintenance72

Regular maintenance activity

Popularity48

Moderate usage in the ecosystem

Community23

Small or concentrated contributor base

Maturity81

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 53.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~72 days

Recently: every ~8 days

Total

31

Last Release

167d ago

Major Versions

v1.1.4 → v2.0.02021-04-16

v2.2.0 → v3.0.02021-11-07

v3.8.0 → v4.0.02025-06-02

v3.8.2 → v4.0.12025-11-21

PHP version history (6 changes)v1.0.0PHP ^7.2

v2.0.0PHP ^7.3

v2.1.0PHP ^7.3 || ^8.0

v3.0.1PHP ^7.4 || ^8.0

v3.4.0PHP ^8.0

v3.7.0PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/32f47fee63643780d0758c7803bd7f2e682fb8c41e09a6f6041412b3264821c1?d=identicon)[synolia](/maintainers/synolia)

---

Top Contributors

[![oallain](https://avatars.githubusercontent.com/u/6593252?v=4)](https://github.com/oallain "oallain (199 commits)")[![TheGrimmChester](https://avatars.githubusercontent.com/u/1076333?v=4)](https://github.com/TheGrimmChester "TheGrimmChester (122 commits)")[![Jibbarth](https://avatars.githubusercontent.com/u/3168281?v=4)](https://github.com/Jibbarth "Jibbarth (27 commits)")[![maxperei](https://avatars.githubusercontent.com/u/7437661?v=4)](https://github.com/maxperei "maxperei (20 commits)")[![reyostallenberg](https://avatars.githubusercontent.com/u/3579090?v=4)](https://github.com/reyostallenberg "reyostallenberg (3 commits)")[![vasilvestre](https://avatars.githubusercontent.com/u/17164385?v=4)](https://github.com/vasilvestre "vasilvestre (1 commits)")[![Laiah](https://avatars.githubusercontent.com/u/26041154?v=4)](https://github.com/Laiah "Laiah (1 commits)")[![lruozzi9](https://avatars.githubusercontent.com/u/26346480?v=4)](https://github.com/lruozzi9 "lruozzi9 (1 commits)")[![HugFes](https://avatars.githubusercontent.com/u/24300975?v=4)](https://github.com/HugFes "HugFes (1 commits)")

---

Tags

syliussylius-pluginschedulersyliuscommandsylius-plugin

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/synolia-sylius-scheduler-command-plugin/health.svg)

```
[![Health](https://phpackages.com/badges/synolia-sylius-scheduler-command-plugin/health.svg)](https://phpackages.com/packages/synolia-sylius-scheduler-command-plugin)
```

###  Alternatives

[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M195](/packages/sulu-sulu)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k5.8M710](/packages/sylius-sylius)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.4M506](/packages/shopware-core)[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)[oro/platform

Business Application Platform (BAP)

641140.7k103](/packages/oro-platform)[contao/core-bundle

Contao Open Source CMS

1231.6M2.6k](/packages/contao-core-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
