Allows a callable to be passed to Resque::setBackend for setting Resque::

This commit is contained in:
vincent zhao 2014-09-25 10:31:09 +10:00
parent f14e844c45
commit bc9dac71ca

View File

@ -33,6 +33,8 @@ class Resque
* the redis server that Resque will talk to. * the redis server that Resque will talk to.
* *
* @param mixed $server Host/port combination separated by a colon, DSN-formatted URI, or * @param mixed $server Host/port combination separated by a colon, DSN-formatted URI, or
* a callable that receives the configured database ID
* and returns a Resque_Redis instance, or
* a nested array of servers with host/port pairs. * a nested array of servers with host/port pairs.
* @param int $database * @param int $database
*/ */
@ -54,10 +56,15 @@ class Resque
return self::$redis; return self::$redis;
} }
self::$redis = new Resque_Redis(self::$redisServer, self::$redisDatabase); if (is_callable(self::$redisServer)) {
self::$redis = call_user_func(self::$redisServer, self::$redisDatabase);
} else {
self::$redis = new Resque_Redis(self::$redisServer, self::$redisDatabase);
}
return self::$redis; return self::$redis;
} }
/** /**
* fork() helper method for php-resque that handles issues PHP socket * fork() helper method for php-resque that handles issues PHP socket
* and phpredis have with passing around sockets between child/parent * and phpredis have with passing around sockets between child/parent
@ -135,7 +142,7 @@ class Resque
return self::removeList($queue); return self::removeList($queue);
} }
} }
/** /**
* Pop an item off the end of the specified queues, using blocking list pop, * Pop an item off the end of the specified queues, using blocking list pop,
* decode it and return it. * decode it and return it.
@ -324,7 +331,7 @@ class Resque
* Remove List * Remove List
* *
* @private * @private
* *
* @params string $queue the name of the queue * @params string $queue the name of the queue
* @return integer number of deleted items belongs to this list * @return integer number of deleted items belongs to this list
*/ */