PHPackages                             helhum/typo3-crontab - 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. [CLI &amp; Console](/categories/cli)
4. /
5. helhum/typo3-crontab

ActiveTypo3-cms-extension[CLI &amp; Console](/categories/cli)

helhum/typo3-crontab
====================

Advanced scheduling for TYPO3 Console commands and TYPO3 Scheduler tasks

v0.7.1(1y ago)3342.9k↓41.4%11[4 issues](https://github.com/helhum/typo3-crontab/issues)[1 PRs](https://github.com/helhum/typo3-crontab/pulls)GPL-2.0-or-laterPHPPHP &gt;=8.1

Since Jun 18Pushed 3mo ago12 watchersCompare

[ Source](https://github.com/helhum/typo3-crontab)[ Packagist](https://packagist.org/packages/helhum/typo3-crontab)[ Docs](https://github.com/helhum/typo3-crontab)[ RSS](/packages/helhum-typo3-crontab/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (3)Versions (14)Used By (0)

TYPO3 Command scheduling (crontab)
==================================

[](#typo3-command-scheduling-crontab)

Disclaimer
----------

[](#disclaimer)

This package is made with the intention to, at some point, replace the current functionality of TYPO3 scheduler extension. It is in early development stage, which means that not all features (especially UI wise) are implemented yet, but the implemented functionality is known to work reliably. This package currently does not work in Windows environments, as no POSIX functions (`posix_getpgid`) are available, which are required to check whether the processes are actually running.

Key features
------------

[](#key-features)

- Tasks are configured via configuration, thus are deployable as code.
- In addition to regular Scheduler tasks, any TYPO3 Console command and any shell script can be added as task.
- Whether a task is shown as running in the UI, always reflects the real state of the process. No more marking tasks not running in case they crash with an error.
- Stopping a task via the UI actually stops the process, instead of just marking it as not running.
- The crontab command (`crontab:run`) to execute the scheduled tasks can optionally be a long running process, constantly looking for tasks to be executed (the option `--timeout`) and allows parallel execution of of different due tasks (the option `--forks`).
- Tasks can be configured to be re-scheduled for immediate execution in case they failed.

Installation
------------

[](#installation)

1. Add the extension to your TYPO3 Project: `composer require helhum/typo3-crontab`
2. Configure the system cron to run the command: `/path/to/vendor/bin/typo3cms crontab:run`
3. Configure tasks in your TYPO3 configuration file(s)

Configuring schedules for commands (and scheduler tasks)
--------------------------------------------------------

[](#configuring-schedules-for-commands-and-scheduler-tasks)

Configuring schedules it purely done through configuration (aka. `TYPO3_CONF_VARS`), typically in `LocalConfiguration.php` or `AdditionalConfiguration.php`

This means:

1. Extensions could add tasks as well (through ext\_localconf.php files)
2. It is possible to add different tasks in different environments (by providing different configuration for different environments)
3. Deploy same tasks in all environments

Example (in yaml notation):

```
EXTCONF:
    crontab:
        update_refindex:
            group: 'Demo'
            multiple: false
            retryOnFailure: false
            title: 'Updates reference index'
            cron: '*/30 * * * *'
            process:
                type: command
                command: cleanup:updatereferenceindex
                arguments:
                    - '--quiet'
                    - '--no-interaction'
        shell_script:
            group: 'Demo'
            multiple: false
            retryOnFailure: true
            title: 'Executing a shell script'
            description: 'Path relative to composer root or absolute'
            cron: '*/12 * * * *'
            process:
                type: script
                script: res/scripts/test.sh
                arguments:
                    - 'foo'
        php_script:
            group: 'Demo'
            multiple: false
            retryOnFailure: false
            title: 'Executing a php script'
            description: '"@php" placeholder can be used to reference the PHP binary used by the crontab:run command'
            cron: '*/42 * * * *'
            process:
                type: script
                script: '@php res/scripts/test.php'
                arguments:
                    - 'bar'
        test:
            group: 'Demo'
            multiple: true
            retryOnFailure: false
            description: 'Just for demo purposes'
            cron: '*/1 * * * *'
            process:
                type: scheduler
                className: TYPO3\CMS\Scheduler\Example\TestTask
                arguments:
                    email: test@test.test
        solr_indexer:
            group: 'Demo'
            multiple: false
            retryOnFailure: false
            description: 'Run early, run often'
            cron: '*/5 * * * *'
            process:
                type: scheduler
                className: ApacheSolrForTypo3\Solr\Task\IndexQueueWorkerTask
                arguments:
                    site: 1
                    documentsToIndexLimit: 20
                    forcedWebRoot: null
```

Current state
-------------

[](#current-state)

- There is no user interface for adding tasks or removing tasks. You have to provide the configuration manually.
- TYPO3 Console is a hard requirement
- The extension only comes for Composer installations. TYPO3 in non Composer mode is not supported.
- start times, end times for scheduled tasks do not exist. If you have such requirement,
- The command to execute scheduled tasks is `crontab:run`you could build some automation around the `crontab:schedule` command to automate enabling/disabling tasks at appropriate times.

Concepts (especially in relation to TYPO3 scheduler)
----------------------------------------------------

[](#concepts-especially-in-relation-to-typo3-scheduler)

### Everything is a command or script

[](#everything-is-a-command-or-script)

The main purpose of this extension is to execute different units of work as background task on a regular schedule. Similar to Unix crontab, a unit of work is limited to be a TYPO3 Console command or shell script. To provide backwards compatibility, Scheduler tasks are wrapped into a special command, so that they can be used as unit of work, too. So every command that is available as command in TYPO3 Console and every shell script, will be a valid unit of work to be scheduled. Whether it makes sense to do schedule certain commands, is up to you to decide.

### Just a crontab

[](#just-a-crontab)

Just like with a Unix crontab, there is no possibility for defining start or end time or for setting a unit of work to only execute once.

It is possible to configure commands to be scheduled, but remove them from regular scheduled executions. Similar to adding commands to your crontab but commenting them out, so that they are ignored.

Such commands will appear in the UI as "disabled". On first deployment on a target system all configured commands are disabled and must be enabled to be scheduled, either through the UI, or by using the `crontab:schedule` command.

Security considerations
-----------------------

[](#security-considerations)

Since conceptually it is possible to execute any TYPO3 Console command, it becomes pretty clear, users with access to this module must be considered to have access to the complete TYPO3 installation (system maintainer) and to an extent also to the underlying OS. Just similar to having access to extension manager (which allows integrating PHP code) or install tool (where you can create admin users).

Contribution
------------

[](#contribution)

Every contribution is valuable. Please check it out and test it, give feedback by creating feature requests or suggestions, create pull requests with change suggestions, reach out to me via [Twitter](https://twitter.com/helhum) or any other channel.

###  Health Score

50

—

FairBetter than 96% of packages

Maintenance62

Regular maintenance activity

Popularity40

Moderate usage in the ecosystem

Community20

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 91.9% 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 ~171 days

Recently: every ~227 days

Total

13

Last Release

466d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/904370?v=4)[Helmut Hummel](/maintainers/helhum)[@helhum](https://github.com/helhum)

---

Top Contributors

[![helhum](https://avatars.githubusercontent.com/u/904370?v=4)](https://github.com/helhum "helhum (68 commits)")[![stigfaerch](https://avatars.githubusercontent.com/u/6790776?v=4)](https://github.com/stigfaerch "stigfaerch (3 commits)")[![colorcube](https://avatars.githubusercontent.com/u/13253123?v=4)](https://github.com/colorcube "colorcube (1 commits)")[![Kanti](https://avatars.githubusercontent.com/u/471387?v=4)](https://github.com/Kanti "Kanti (1 commits)")[![wolffc](https://avatars.githubusercontent.com/u/1393783?v=4)](https://github.com/wolffc "wolffc (1 commits)")

### Embed Badge

![Health badge](/badges/helhum-typo3-crontab/health.svg)

```
[![Health](https://phpackages.com/badges/helhum-typo3-crontab/health.svg)](https://phpackages.com/packages/helhum-typo3-crontab)
```

###  Alternatives

[helhum/typo3-console

A reliable and powerful command line interface for TYPO3 CMS

2939.0M192](/packages/helhum-typo3-console)[crunzphp/crunz

Schedule your tasks right from the code.

2292.0M6](/packages/crunzphp-crunz)[zenstruck/schedule-bundle

Schedule Cron jobs (commands/callbacks/bash scripts) within your Symfony application.

4041.0M2](/packages/zenstruck-schedule-bundle)[netresearch/rte-ckeditor-image

Image support in CKEditor for the TYPO3 ecosystem - by Netresearch

63991.3k4](/packages/netresearch-rte-ckeditor-image)[hmazter/laravel-schedule-list

Laravel package to add command to list all scheduled artisan commands

94432.8k](/packages/hmazter-laravel-schedule-list)[namelesscoder/typo3-cms-fluid-precompiler

156.1k](/packages/namelesscoder-typo3-cms-fluid-precompiler)

PHPackages © 2026

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