Download the PHP package cronalive/laravel without Composer

On this page you can find all versions of the php package cronalive/laravel. 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 laravel

cronalive/laravel

Heartbeat monitoring for Laravel scheduled jobs with CronAlive: if a job stops pinging on schedule, you get an alert.

Pings never throw — monitoring must not break the monitored job.

Requirements

Laravel 10, 11, 12, 13
PHP 8.1+ (whatever your Laravel version requires)

Every supported version is covered by the same integration suite in CI — scheduler macros, signal timeouts and the swallowing of a dead ping domain are asserted against a real framework of each major, not against mocks.

A note on Laravel 10: it is past its security-fix window upstream, and we support it because real projects still run it — not as a recommendation. Upgrading is the safer place to be.

Install

Set the env (only needed for slug addressing / auto-provisioning):

Usage

Both scheduler macros send /start before the job and success / /fail after it, so CronAlive also measures the job duration. The success ping goes out only when the job exits with 0; a failed job sends /fail and nothing else.

The schedule comes from your code

pingCronaliveSlug reads the schedule off the scheduled task itself and sends it along with the first ping, so an auto-provisioned check knows when to expect the job — no retyping the schedule in the dashboard, and no way for the two to drift apart.

Your task What the check gets
->everyFiveMinutes() cron=*/5 * * * *
->dailyAt('03:30') cron=30 3 * * *
->dailyAt('03:30')->timezone('Europe/Berlin') the same plus tz=Europe/Berlin
->everyThirtySeconds() period=60 — see below
pingCronaliveSlug('etl', graceSec: 1800) grace=1800
pingCronaliveSlug('etl', tags: ['etl', 'prod']) tags=etl,prod

The timezone is the task's own if it has one, otherwise your app.timezone. Without graceSec the project default applies (Projects → Auto-provisioning in the dashboard). The shortest grace CronAlive accepts is 30 seconds — pass less and it is raised to 30 rather than refused, since schedulers start jobs with a few seconds of jitter and a shorter grace turns that jitter into false alerts.

Sub-minute tasks. everyThirtySeconds() and friends leave the cron expression at * * * * * and keep the real interval elsewhere, so they travel as period. CronAlive's shortest period is 60 seconds, so anything faster is monitored as "pings at least once a minute" — true for such a job, and it never false-alarms.

Grace is a named argument on purpose. The second positional parameter is still $create, because pingCronaliveSlug('etl-run', false) already means "do not create the check" in existing code — reordering would silently turn that into "create it with a zero grace period".

Tags are labels for grouping checks on the dashboard: up to 20 of them, up to 64 characters each. The server corrects rather than rejects — blanks dropped, long ones truncated, extras past the twentieth discarded — because a label is not worth failing a ping over.

Creating is not updating. Schedule parameters apply only when the check is created. Once it exists, further pings just count — the parameters are ignored, deliberately and silently, so a deploy can never rewrite a schedule someone tuned in the dashboard. Changed the schedule in code? Update the check in the dashboard (or via the API), or delete it and let the next ping recreate it.

One more thing worth knowing: ->when() / ->skip() filters stop the task and its pings, so a skipped run looks exactly like a missed one. Pause the check while it is expected to be skipped, or drive the condition inside the job instead.

IDE support

The macros are attached to Illuminate\Console\Scheduling\Event at runtime, so static analysis cannot see them and your IDE will flag pingCronalive / pingCronaliveSlug as "method not found". The package ships _ide_helper.php with the signatures; point your IDE at it once — in PhpStorm, right-click the file inside vendor/cronalive/laravel and choose Include to Project. The file is never executed (its class sits behind if (false)) and is not autoloaded.

Pings never hold your schedule

The macros do not use Laravel's pingBefore / thenPing / pingOnFailure. Those callbacks swallow errors, but they wait on Laravel's default scheduler client — 10 s to connect, 30 s in total, per signal, so up to 90 s for a job with three of them (and no bound at all if your app binds its own Guzzle client into the container). Scheduler callbacks run inline, one after another, so an unreachable ping domain does not just delay one job — it shifts everything scheduled behind it.

Every signal is sent with connectTimeout(2) and timeout(5) instead, and a failure is swallowed: the signal either goes out fast or is quietly dropped. There is no retry inside a signal — it would only double the delay, and the next scheduled run sends a fresh ping anyway.

A dropped signal is still reported through your exception handler, so it shows up in the log, but at most once per schedule:run — a dead domain would otherwise write the same trace for every signal of every job.

Docs

Full documentation: https://cronalive.com/docs/.

License

MIT


All versions of laravel with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
guzzlehttp/guzzle Version ^7.5
illuminate/console Version ^10.0|^11.0|^12.0|^13.0
illuminate/http Version ^10.0|^11.0|^12.0|^13.0
illuminate/support Version ^10.0|^11.0|^12.0|^13.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 cronalive/laravel contains the following files

Loading the files please wait ...