diff --git a/README.md b/README.md index fc1047a..8b8bb53 100644 --- a/README.md +++ b/README.md @@ -51,20 +51,24 @@ If you're not familiar with Composer, please see . 1. Add php-resque to your application's composer.json. - { - ... - "require": { - "chrisboulton/php-resque": "1.2.x" - }, - ... - } +```json +{ + //... + "require": { + "chrisboulton/php-resque": "1.2.x" + }, + // ... +} +``` 2. Run `composer install`. 3. If you haven't already, add the Composer autoload to your project's initialization file. (example) - require 'vendor/autoload.php'; +```sh +require 'vendor/autoload.php'; +``` ## Jobs ## @@ -72,26 +76,30 @@ If you're not familiar with Composer, please see . Jobs are queued as follows: - // Required if redis is located elsewhere - Resque::setBackend('localhost:6379'); +```php +// Required if redis is located elsewhere +Resque::setBackend('localhost:6379'); - $args = array( - 'name' => 'Chris' - ); - Resque::enqueue('default', 'My_Job', $args); +$args = array( + 'name' => 'Chris' + ); +Resque::enqueue('default', 'My_Job', $args); +``` ### Defining Jobs ### Each job should be in it's own class, and include a `perform` method. - class My_Job - { - public function perform() - { - // Work work work - echo $this->args['name']; - } - } +```php +class My_Job +{ + public function perform() + { + // Work work work + echo $this->args['name']; + } +} +``` When the job is run, the class will be instantiated and any arguments will be set as an array on the instantiated object, and are accessible @@ -105,23 +113,26 @@ Jobs can also have `setUp` and `tearDown` methods. If a `setUp` method is defined, it will be called before the `perform` method is run. The `tearDown` method if defined, will be called after the job finishes. - class My_Job - { - public function setUp() - { - // ... Set up environment for this job - } - public function perform() - { - // .. Run job - } +```php +class My_Job +{ + public function setUp() + { + // ... Set up environment for this job + } - public function tearDown() - { - // ... Remove environment for this job - } - } + public function perform() + { + // .. Run job + } + + public function tearDown() + { + // ... Remove environment for this job + } +} +``` ### Tracking Job Statuses ### @@ -133,13 +144,17 @@ To track the status of a job, pass `true` as the fourth argument to `Resque::enqueue`. A token used for tracking the job status will be returned: - $token = Resque::enqueue('default', 'My_Job', $args, true); - echo $token; +```php +$token = Resque::enqueue('default', 'My_Job', $args, true); +echo $token; +``` To fetch the status of a job: - $status = new Resque_Job_Status($token); - echo $status->get(); // Outputs the status +```php +$status = new Resque_Job_Status($token); +echo $status->get(); // Outputs the status +``` Job statuses are defined as constants in the `Resque_Job_Status` class. Valid statuses include: @@ -170,14 +185,16 @@ not having a single environment such as with Ruby, the PHP port makes *no* assumptions about your setup. To start a worker, it's very similar to the Ruby version: - - $ QUEUE=file_serve php bin/resque - +```sh +$ QUEUE=file_serve php bin/resque +``` It's your responsibility to tell the worker which file to include to get your application underway. You do so by setting the `APP_INCLUDE` environment variable: - $ QUEUE=file_serve APP_INCLUDE=../application/init.php php bin/resque +```sh +$ QUEUE=file_serve APP_INCLUDE=../application/init.php php bin/resque +``` *Pro tip: Using Composer? More than likely, you don't need to worry about `APP_INCLUDE`, because hopefully Composer is responsible for autoloading @@ -192,8 +209,10 @@ The port supports the same environment variables for logging to STDOUT. Setting `VERBOSE` will print basic debugging information and `VVERBOSE` will print detailed information. - $ VERBOSE QUEUE=file_serve bin/resque - $ VVERBOSE QUEUE=file_serve bin/resque +```sh +$ VERBOSE QUEUE=file_serve bin/resque +$ VVERBOSE QUEUE=file_serve bin/resque +``` ### Priorities and Queue Lists ### @@ -204,7 +223,9 @@ checked in. As per the original example: - $ QUEUE=file_serve,warm_cache bin/resque +```sh +$ QUEUE=file_serve,warm_cache bin/resque +``` The `file_serve` queue will always be checked for new jobs on each iteration before the `warm_cache` queue is checked. @@ -214,21 +235,27 @@ iteration before the `warm_cache` queue is checked. All queues are supported in the same manner and processed in alphabetical order: - $ QUEUE=* bin/resque +```sh +$ QUEUE=* bin/resque +``` ### Running Multiple Workers ### Multiple workers ca be launched and automatically worked by supplying the `COUNT` environment variable: - $ COUNT=5 bin/resque +```sh +$ COUNT=5 bin/resque +``` ### Custom prefix ### When you have multiple apps using the same Redis database it is better to use a custom prefix to separate the Resque data: - $ PREFIX=my-app-name bin/resque +```sh +$ PREFIX=my-app-name bin/resque +``` ### Forking ### @@ -274,7 +301,9 @@ You listen in on events (as listed below) by registering with `Resque_Event` and supplying a callback that you would like triggered when the event is raised: - Resque_Event::listen('eventName', [callback]); +```sh +Resque_Event::listen('eventName', [callback]); +``` `[callback]` may be anything in PHP that is callable by `call_user_func_array`: @@ -358,7 +387,7 @@ Called after a job has been queued using the `Resque::enqueue` method. Arguments ## Contributors ## -* chrisboulton +* chrisboulton * thedotedge * hobodave * scraton