Download the PHP package nixphp/schedule without Composer

On this page you can find all versions of the php package nixphp/schedule. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package schedule

[!IMPORTANT] NixPHP is now NAF — "Not Another Framework".

This package continues as naf/schedule: github.com/nafphp/schedule · documentation · what changed and how to move

The old name collided with NixOS down to the shell, where the CLI binary was literally nix. This repository is archived and receives no further releases; nixphp/schedule stays on Packagist so existing installations keep working.

Note the plugin type. NAF discovers plugins by the Composer type naf-plugin. A package still declaring nixphp-plugin is not loaded — silently, with no error.


![Logo](https://nixphp.github.io/docs/assets/nixphp-logo-small-square.png) [![NixPHP Schedule Plugin](https://github.com/nixphp/schedule/actions/workflows/php.yml/badge.svg)](https://github.com/nixphp/schedule/actions/workflows/php.yml)

← Back to NixPHP


nixphp/schedule

Minimalistic scheduling for NixPHP – cron-based, predictable, and queue-aware.

This plugin provides a lightweight scheduler for recurring tasks using cron expressions. It is designed to work seamlessly with the NixPHP Queue plugin, without introducing hidden magic or unnecessary complexity.

🧩 Part of the official NixPHP plugin collection.
Use it when you want to run recurring jobs reliably – without relying on system cron files or external schedulers.


Features


📥 Installation

`

The plugin will be autoloaded automatically.


Basic idea

The scheduler does not execute jobs directly.

Instead:

  1. The scheduler decides which jobs are due
  2. Due jobs are queued
  3. Queue workers execute them asynchronously

This keeps scheduling and execution cleanly separated.


Defining scheduled jobs

A scheduled job is a normal queue job that additionally implements ScheduledJobInterface:


Registering scheduled jobs

Register scheduled jobs via the Scheduler:

Payloads can be passed as well:


Running the scheduler

Start the scheduler ticker via CLI:

The ticker:

It runs continuously and is usually managed by Supervisor or systemd.


Backlog handling (important)

The problem

If the scheduler runs but queue workers are down, scheduled jobs can pile up. In most cases this is not desired: polling, syncing, rebuilding, or checking tasks usually only need to run once with the latest state.

The solution: automatic coalescing

By default, the scheduler coalesces scheduled jobs:

If a job was scheduled multiple times while workers were unavailable, only the latest execution is kept in the queue.

This prevents useless backlogs and keeps execution predictable.

How it works (internally)

The scheduler assigns a deterministic job ID based on:

This causes older queued runs to be replaced automatically.

No special configuration is required. Queue drivers remain fully generic.


Configuration

You can control this behavior via configuration:

When to disable coalescing

Set coalesce to false if:


Duplicate execution prevention

The scheduler also tracks its own state internally to ensure that:

State is stored in a small JSON file (configurable).


Worker interaction

The scheduler does not spawn queue workers by default.

You are expected to run queue workers independently, e.g. via Supervisor:

This keeps the system flexible and avoids hidden background processes.


Supervisor example (optional)


Requirements


📄 License

MIT License.


All versions of schedule with dependencies

PHP Build Version
Package Version
Requires php Version >=8.3
ext-pdo Version *
nixphp/framework Version ^0.1.0
nixphp/queue Version ^0.1.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package nixphp/schedule contains the following files

Loading the files please wait ...