Don't wait any longer with queues
Queues allow you to defer the execution of functions without blocking the script. They can be used to run all sorts of functions, from e-mailing a large number of users to generating PDF reports.
Laravel 5 is compatible with the following queue drivers:
- Beanstalkd, with the
pda/pheanstalk
package - Amazon SQS, with the
aws/aws-sdk-php
package - IronMQ, with the
iron-io/iron_mq
package
Each queue system has its advantages. Beanstalkd can be installed on your own server; Amazon SQS might be more cost-effective and require less maintenance, as will IronMQ, which is also cloud-based. The latter also lets you set up push queues, which are great if you cannot run background jobs on your server.
Creating a command and pushing it onto the queue
Jobs come in the form of commands. Commands can be either self-handling or not. In the latter case, a corresponding handler class would take the data from the command class and then act upon it.
Command classes reside in the app...