first commit
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* @file jobs/BaseJob.php
|
||||
*
|
||||
* Copyright (c) 2014-2021 Simon Fraser University
|
||||
* Copyright (c) 2000-2021 John Willinsky
|
||||
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
|
||||
*
|
||||
* @class BaseJob
|
||||
*
|
||||
* @ingroup support
|
||||
*
|
||||
* @brief Abstract class for Jobs
|
||||
*/
|
||||
|
||||
namespace PKP\jobs;
|
||||
|
||||
use APP\core\Application;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Foundation\Bus\Dispatchable;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use PKP\config\Config;
|
||||
|
||||
abstract class BaseJob implements ShouldQueue
|
||||
{
|
||||
use Dispatchable;
|
||||
use InteractsWithQueue;
|
||||
use Queueable;
|
||||
use SerializesModels;
|
||||
|
||||
/**
|
||||
* The number of times the job may be attempted.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
public $tries = 3;
|
||||
|
||||
/**
|
||||
* The number of SECONDS to wait before retrying the job.
|
||||
*/
|
||||
public int $backoff = 5;
|
||||
|
||||
/**
|
||||
* The maximum number of SECONDS a job should get processed before consider failed
|
||||
*/
|
||||
public int $timeout = 60;
|
||||
|
||||
/**
|
||||
* The maximum number of unhandled exceptions to allow before failing.
|
||||
*/
|
||||
public int $maxExceptions = 3;
|
||||
|
||||
/**
|
||||
* Indicate if the job should be marked as failed on timeout.
|
||||
*/
|
||||
public bool $failOnTimeout = true;
|
||||
|
||||
/**
|
||||
* Initialize the job
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->connection = $this->defaultConnection();
|
||||
$this->queue = Config::getVar('queues', 'default_queue', 'queue');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the queue job default connection to execute
|
||||
*/
|
||||
protected function defaultConnection(): string
|
||||
{
|
||||
if (Application::isUnderMaintenance()) {
|
||||
return 'sync';
|
||||
}
|
||||
|
||||
return Config::getVar('queues', 'default_connection', 'database');
|
||||
}
|
||||
|
||||
/**
|
||||
* handle the queue job execution process
|
||||
*/
|
||||
abstract public function handle();
|
||||
}
|
||||
Reference in New Issue
Block a user