PHPackages                             connectholland/tactician-scheduler-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. [Queues &amp; Workers](/categories/queues)
4. /
5. connectholland/tactician-scheduler-plugin

AbandonedArchivedLibrary[Queues &amp; Workers](/categories/queues)

connectholland/tactician-scheduler-plugin
=========================================

Tactician plugin that allows scheduling a command to be executed at a specific time in the future

1.1.1(10y ago)213.5k3[3 issues](https://github.com/ConnectHolland/tactician-scheduler-plugin/issues)MITPHP

Since Aug 14Pushed 8y ago3 watchersCompare

[ Source](https://github.com/ConnectHolland/tactician-scheduler-plugin)[ Packagist](https://packagist.org/packages/connectholland/tactician-scheduler-plugin)[ RSS](/packages/connectholland-tactician-scheduler-plugin/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (3)Dependencies (6)Versions (7)Used By (0)

tactician-scheduler-plugin
==========================

[](#tactician-scheduler-plugin)

Tactician plugin that allows scheduling a command to be executed at a specific time in the future

[![Build Status](https://camo.githubusercontent.com/8ca81356eb2b77ae0f3ce229755229c3a37391f69dd2f0328feaffe4e0dd4566/68747470733a2f2f7472617669732d63692e6f72672f436f6e6e656374486f6c6c616e642f74616374696369616e2d7363686564756c65722d706c7567696e2e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/ConnectHolland/tactician-scheduler-plugin)[![Coverage Status](https://camo.githubusercontent.com/97a051430756675810fe0ec4954fee7977b827611ed6af61ee9f018abc190881/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f526f6e526164656d616b65722f74616374696369616e2d7363686564756c65722d706c7567696e2f62616467652e7376673f6272616e63683d6d617374657226736572766963653d676974687562)](https://coveralls.io/github/RonRademaker/tactician-scheduler-plugin?branch=master)[![SensioLabsInsight](https://camo.githubusercontent.com/16e018711dcf718d209263cc58adb53fe6013b879fc08285d0451064bf3795a1/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f66316263366539312d356432362d346135642d623331312d6132633561663234636437362f6d696e692e706e67)](https://insight.sensiolabs.com/projects/f1bc6e91-5d26-4a5d-b311-a2c5af24cd76)[![Latest Stable Version](https://camo.githubusercontent.com/20f7bdefc809cbe7fd04d9c76d9cd2d72ab4b6f53f58810e1e8d5f5a4c13b015/68747470733a2f2f706f7365722e707567782e6f72672f636f6e6e656374686f6c6c616e642f74616374696369616e2d7363686564756c65722d706c7567696e2f762f737461626c65)](https://packagist.org/packages/connectholland/tactician-scheduler-plugin) [![Total Downloads](https://camo.githubusercontent.com/95d9a89587e6241c1a79defa55668bfab3e4d9a338b94103dbeff945deb95da0/68747470733a2f2f706f7365722e707567782e6f72672f636f6e6e656374686f6c6c616e642f74616374696369616e2d7363686564756c65722d706c7567696e2f646f776e6c6f616473)](https://packagist.org/packages/connectholland/tactician-scheduler-plugin) [![Latest Unstable Version](https://camo.githubusercontent.com/58f5ff6685ececa390e06582bb05a9c7a0dec4a7ee78b3e2190285809746f35b/68747470733a2f2f706f7365722e707567782e6f72672f636f6e6e656374686f6c6c616e642f74616374696369616e2d7363686564756c65722d706c7567696e2f762f756e737461626c65)](https://packagist.org/packages/connectholland/tactician-scheduler-plugin) [![License](https://camo.githubusercontent.com/7af6327256a4e810d6eb35d4dc2a67bfbdf9775d75d60e9c5701975275311123/68747470733a2f2f706f7365722e707567782e6f72672f636f6e6e656374686f6c6c616e642f74616374696369616e2d7363686564756c65722d706c7567696e2f6c6963656e7365)](https://packagist.org/packages/connectholland/tactician-scheduler-plugin)

Concept
=======

[](#concept)

This plugin allows you to create ScheduledCommands that will be executed at a specific time in the future.

Usage
=====

[](#usage)

Make sure you put the SchedulerMiddleware in your CommandBus middleware chain:

```
// create your other middleware
$middleware[] = new SchedulerMiddleware(new FileBasedScheduler($pathWhereTheSchedulerMayKeepItsFiles) );
// create your other middleware
$commandbus = new CommandBus($middleware);
```

Let the command you want to schedule extend from AbstractScheduledCommand or implement the ScheduledCommandInterface. Create it and set a execution time:

```
class SayHappyNewYear extends AbstractScheduledCommand
{
    private $message;

    public function __construct($message)
    {
        $this->message = $message;
    }

    public function getMessage()
    {
        return $this->message;
    }
}

$myScheduledCommand = new SayHappyNewYear('Happy New Year');
$myScheduledCommand->setTimestamp(strtotime('2016-01-01 0:00:00') );
$myCommandBus->handle($myScheduledCommand);
```

Create a bootstrap file that builds your Commandbus and cron the schedule execution command, for example bootstrap.php

```
// setup any environment you need
// create your other middleware
$middleware[] = new SchedulerMiddleware(new FileBasedScheduler($pathWhereTheSchedulerMayKeepItsFiles) );
// create your other middleware
$commandbus = new CommandBus($middleware);
return $commandbus;
```

Cron the scheduler at any interval you like (the more it runs, the better you can time your commands), example for once a minute

```
* * * * *   www-data    vendor/bin/scheduler scheduler:execute bootstrap.php
```

Or you can use the daemon command that ships with the package, to schedule an iteration every 10 seconds use:

```
vendor/bin/scheduler scheduler:daemon bootstrap.php 10
```

To make it stop after a minute use:

```
vendor/bin/scheduler scheduler:daemon bootstrap.php 10 6
```

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance17

Infrequent updates — may be unmaintained

Popularity27

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 96.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 ~117 days

Total

3

Last Release

3690d ago

### Community

Maintainers

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

---

Top Contributors

[![RonRademaker](https://avatars.githubusercontent.com/u/2697738?v=4)](https://github.com/RonRademaker "RonRademaker (49 commits)")[![ixnv](https://avatars.githubusercontent.com/u/4655259?v=4)](https://github.com/ixnv "ixnv (1 commits)")[![msarris](https://avatars.githubusercontent.com/u/1656405?v=4)](https://github.com/msarris "msarris (1 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/connectholland-tactician-scheduler-plugin/health.svg)

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

###  Alternatives

[league/geotools

Geo-related tools PHP 7.3+ library

1.4k5.3M26](/packages/league-geotools)[illuminate/queue

The Illuminate Queue package.

20331.4M1.2k](/packages/illuminate-queue)[jolicode/castor

A lightweight and modern task runner. Automate everything. In PHP.

53541.0k3](/packages/jolicode-castor)[toin0u/geotools

Geo-related tools PHP 7.3+ library

1.4k1.3k](/packages/toin0u-geotools)[riki137/multitron

Tool for managing fast both asynchronous and multi-threaded execution of tasks. Focused on performance and pleasant CLI interface.

9016.8k](/packages/riki137-multitron)[pekkis/queue

Queue abstraction library

18129.9k2](/packages/pekkis-queue)

PHPackages © 2026

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