plexorganizrnginxsonarrradarrdashboardcouchpotatonzbgetbookmarkapplication-dashboardmuximuxlandingpagestartpagelandinghtpcserverhomepagesabnzbdheimdallemby
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.3 KiB
50 lines
1.3 KiB
<?php
|
|
|
|
namespace Illuminate\Queue;
|
|
|
|
use Illuminate\Container\Container;
|
|
use Illuminate\Queue\Events\JobFailed;
|
|
use Illuminate\Contracts\Events\Dispatcher;
|
|
|
|
class FailingJob
|
|
{
|
|
/**
|
|
* Delete the job, call the "failed" method, and raise the failed job event.
|
|
*
|
|
* @param string $connectionName
|
|
* @param \Illuminate\Queue\Jobs\Job $job
|
|
* @param \Exception $e
|
|
* @return void
|
|
*/
|
|
public static function handle($connectionName, $job, $e = null)
|
|
{
|
|
$job->markAsFailed();
|
|
|
|
if ($job->isDeleted()) {
|
|
return;
|
|
}
|
|
|
|
try {
|
|
// If the job has failed, we will delete it, call the "failed" method and then call
|
|
// an event indicating the job has failed so it can be logged if needed. This is
|
|
// to allow every developer to better keep monitor of their failed queue jobs.
|
|
$job->delete();
|
|
|
|
$job->failed($e);
|
|
} finally {
|
|
static::events()->dispatch(new JobFailed(
|
|
$connectionName, $job, $e ?: new ManuallyFailedException
|
|
));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get the event dispatcher instance.
|
|
*
|
|
* @return \Illuminate\Contracts\Events\Dispatcher
|
|
*/
|
|
protected static function events()
|
|
{
|
|
return Container::getInstance()->make(Dispatcher::class);
|
|
}
|
|
}
|
|
|