Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Scheduler Bundle Laravel Package

caeligo/scheduler-bundle

View on GitHub
Deep Wiki
Context7

HTTP Trigger

An alternative scheduling mechanism for shared hosting environments without crontab access.

Overview

Some shared hosting environments do not provide crontab access. The HTTP trigger allows an external web cron service (e.g., cron-job.org, EasyCron) to trigger the scheduler via an HTTP request.

This feature is disabled by default and must be explicitly enabled.

Configuration

# config/packages/caeligo_scheduler.yaml
caeligo_scheduler:
    http_trigger:
        enabled: true
        secret: 'your-strong-secret-here'  # Required!

Important: The secret must be set when enabling the HTTP trigger. Use a long, random string.

How It Works

  1. You configure the bundle with http_trigger.enabled: true and a secret
  2. The bundle generates a URL with an HMAC-SHA256 token
  3. You configure an external web cron service to ping this URL every minute
  4. The endpoint calls TaskDispatcher::dispatchOverdue() — same as the CLI command

Security

  • The trigger URL includes an HMAC-SHA256 token computed from the project directory and the configured secret
  • Requests without a valid token are rejected with a 403 response
  • The secret should be kept confidential and rotated periodically

External Web Cron Services

Service Free Tier Minimum Interval
cron-job.org Yes 1 minute
EasyCron Limited 1 minute
UptimeRobot Yes (5 min) 5 minutes

Configure the service to send a GET request to your trigger URL every minute (or your preferred interval).

When to Use

Use the HTTP trigger only when:

  • You have no crontab access (shared hosting)
  • You cannot run background processes
  • The caeligo:scheduler:install command reports UNSUPPORTED

For all other environments, prefer the crontab-based approach — it's more reliable and doesn't depend on external services.

Limitations

  • Depends on an external service (less reliable than crontab)
  • Minimum interval depends on the external service
  • HTTP request overhead adds latency
  • The web server must be running for the trigger to work
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
croct/coding-standard
croct/plug-php
nqxcode/phpmorphy
boundwize/pyrameter
testo/facade
headercat/phpstan-extension-ide-helper
yosymfony/parser-utils
innmind/black-box
babenkoivan/elastic-migrations
babenkoivan/elastic-adapter
develia/commons
dmstr/symfony-system-resources-bundle
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony
renatomarinho/laravel-page-speed
develia/geo-bundle
austinheap/laravel-database-encryption
dreamzy/livewire-charts
touchestate-sdk/php-sdk
22h/doctrine-garbage-collection-bundle