mirror of
https://github.com/idanoo/php-resque.git
synced 2024-11-22 16:25:14 +00:00
57 lines
1.7 KiB
PHP
57 lines
1.7 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Failed Resque job.
|
|
*
|
|
* @package Resque/Failure
|
|
* @author Chris Boulton <chris@bigcommerce.com>
|
|
* @license http://www.opensource.org/licenses/mit-license.php
|
|
*/
|
|
|
|
class Resque_Failure
|
|
{
|
|
/**
|
|
* @var string Class name representing the backend to pass failed jobs off to.
|
|
*/
|
|
private static $backend;
|
|
|
|
/**
|
|
* Create a new failed job on the backend.
|
|
*
|
|
* @param array $payload The contents of the job that has just failed.
|
|
* @param Exception $exception The exception generated when the job failed to run.
|
|
* @param Resque_Worker $worker Instance of Resque_Worker that was running this job when it failed.
|
|
* @param string $queue The name of the queue that this job was fetched from.
|
|
*/
|
|
public static function create($payload, Exception $exception, Resque_Worker $worker, $queue)
|
|
{
|
|
$backend = self::getBackend();
|
|
new $backend($payload, $exception, $worker, $queue);
|
|
}
|
|
|
|
/**
|
|
* Return an instance of the backend for saving job failures.
|
|
*
|
|
* @return object|string
|
|
*/
|
|
public static function getBackend()
|
|
{
|
|
if (self::$backend === null) {
|
|
self::$backend = 'Resque_Failure_Redis';
|
|
}
|
|
|
|
return self::$backend;
|
|
}
|
|
|
|
/**
|
|
* Set the backend to use for raised job failures. The supplied backend
|
|
* should be the name of a class to be instantiated when a job fails.
|
|
* It is your responsibility to have the backend class loaded (or autoloaded)
|
|
*
|
|
* @param string $backend The class name of the backend to pipe failures to.
|
|
*/
|
|
public static function setBackend($backend)
|
|
{
|
|
self::$backend = $backend;
|
|
}
|
|
} |