2013-04-20 21:27:46 +00:00
|
|
|
<?php
|
|
|
|
/**
|
2015-02-26 10:37:37 +00:00
|
|
|
* Copyright (c) 2013 Robin Appelman <icewind@owncloud.com>
|
|
|
|
* This file is licensed under the Affero General Public License version 3 or
|
|
|
|
* later.
|
|
|
|
* See the COPYING-README file.
|
2013-04-20 21:27:46 +00:00
|
|
|
*/
|
2015-02-26 10:37:37 +00:00
|
|
|
|
2013-04-20 21:27:46 +00:00
|
|
|
namespace OC\BackgroundJob;
|
|
|
|
|
2014-02-11 13:00:24 +00:00
|
|
|
use OCP\BackgroundJob\IJob;
|
|
|
|
|
|
|
|
abstract class Job implements IJob {
|
2013-12-02 12:41:47 +00:00
|
|
|
/**
|
|
|
|
* @var int $id
|
|
|
|
*/
|
2013-04-20 21:27:46 +00:00
|
|
|
protected $id;
|
2013-12-02 12:41:47 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @var int $lastRun
|
|
|
|
*/
|
2013-04-20 21:27:46 +00:00
|
|
|
protected $lastRun;
|
2013-12-02 12:41:47 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @var mixed $argument
|
|
|
|
*/
|
2013-04-20 21:27:46 +00:00
|
|
|
protected $argument;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param JobList $jobList
|
2013-12-02 12:41:47 +00:00
|
|
|
* @param \OC\Log $logger
|
2013-04-20 21:27:46 +00:00
|
|
|
*/
|
2013-12-02 12:41:47 +00:00
|
|
|
public function execute($jobList, $logger = null) {
|
2013-04-20 21:27:46 +00:00
|
|
|
$jobList->setLastRun($this);
|
2013-12-02 12:41:47 +00:00
|
|
|
try {
|
|
|
|
$this->run($this->argument);
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
if ($logger) {
|
|
|
|
$logger->error('Error while running background job: ' . $e->getMessage());
|
|
|
|
}
|
2013-12-02 12:43:26 +00:00
|
|
|
$jobList->remove($this, $this->argument);
|
2013-12-02 12:41:47 +00:00
|
|
|
}
|
2013-04-20 21:27:46 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
abstract protected function run($argument);
|
|
|
|
|
|
|
|
public function setId($id) {
|
|
|
|
$this->id = $id;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setLastRun($lastRun) {
|
|
|
|
$this->lastRun = $lastRun;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function setArgument($argument) {
|
|
|
|
$this->argument = $argument;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getId() {
|
|
|
|
return $this->id;
|
|
|
|
}
|
|
|
|
|
|
|
|
public function getLastRun() {
|
2013-04-23 21:46:56 +00:00
|
|
|
return $this->lastRun;
|
2013-04-20 21:27:46 +00:00
|
|
|
}
|
2013-04-24 12:38:41 +00:00
|
|
|
|
|
|
|
public function getArgument() {
|
|
|
|
return $this->argument;
|
|
|
|
}
|
2013-04-20 21:27:46 +00:00
|
|
|
}
|