Download the PHP package cossou/eventcron without Composer
On this page you can find all versions of the php package cossou/eventcron. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package eventcron
Laravel 4 EventCRON
A Laravel 4 package that enables you to queue events and fire them in sequence, or at a specific time in the future.
Use Cases
- Sending a user an e-mail 24 hours after registration
- Scheduled mailing and newsletters
- Time consuming processes that would run better at night
- Firing events in a continuous matter (just queue a new event once it's fired)
Installation
Add the package to your composer.json and run composer update
.
Add the service provider in app/config/app.php
:
Optionally add the facade to your aliases:
If you are using Laravel 4.0 ,perform the migration to create the database tables:
Or if you are using Laravel 4.1, publish the package migration to your application
How to Use
To get started, there are three ways in which you can utilize this package.
Via the facade, if you added it to your configuration file (preferred way):
By using the Laravel IoC container:
Directly through the class:
Adding Events
First Steps
As shown, you can just queue your event and listen to it elsewhere.
Flushing the queue for this event will fire all of them at once, since no time has been set.
Using arguments
You can also pass some data to your event handler in the form of an array.
Laravel will then extract all of these variables and pass them to your event handler:
Timing Is Everything
Of course, the main idea of this package is to schedule your events. Just pass a Carbon instance as third parameter:
This event will only be triggered one hour from now.
Carbon is a nice extension to PHP's datetime class(es). For more info: https://github.com/briannesbitt/Carbon.
Flushing the Queue
Now that you've added all these events, you'd want them to be triggered so your whole setup actually does something.
To trigger the queue for a single event:
To trigger the queue of all events:
Please note: events with an execution time set will only be triggered if that moment is in the past. In addition, if the configuration file states enabled
as false
or run_only_from_cli
as true
(and you're flushing a queue from code), nothing will happen.
The CLI + Creating a CRON Job
The following commands are used to flush queues from the CLI:
On most occasions though, you'd trigger events in your queue with a CRON job instead of directly from code or the CLI.
Use crontab -e
or sudo crontab -e
to get into your CRON file and add the following line at the end to flush all queues every minute (because you never know when you've scheduled an event):
Configuration
Publish the package's configuration file with:
enabled (default true
)
Simply enable or disable the package.
BOOLEAN true / false
run_only_from_cli (default true
)
Allow the flushing of queues only from your command line interface (CLI).
BOOLEAN true / false
max_events_per_execution (default 50
)
Maximum number of events to fire in one run (set it to a lower number if you don't want the server go slower).
INTEGER number
log_events (default false
)
Whether or not to write debug messages your log.
BOOLEAN true / false