Merge pull request #8064 from nextcloud/background-jobs

Deprecated OCP interface to fetch background job type
This commit is contained in:
Morris Jobke 2018-01-26 10:43:21 +01:00 committed by GitHub
commit fe7e726ab2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 46 deletions

View File

@ -63,7 +63,7 @@ try {
$logger = \OC::$server->getLogger(); $logger = \OC::$server->getLogger();
$config = \OC::$server->getConfig(); $config = \OC::$server->getConfig();
// Don't do anything if ownCloud has not been installed // Don't do anything if Nextcloud has not been installed
if (!$config->getSystemValue('installed', false)) { if (!$config->getSystemValue('installed', false)) {
exit(0); exit(0);
} }
@ -71,8 +71,8 @@ try {
\OC::$server->getTempManager()->cleanOld(); \OC::$server->getTempManager()->cleanOld();
// Exit if background jobs are disabled! // Exit if background jobs are disabled!
$appMode = \OCP\BackgroundJob::getExecutionType(); $appMode = $config->getAppValue('core', 'backgroundjobs_mode', 'ajax');
if ($appMode == 'none') { if ($appMode === 'none') {
if (OC::$CLI) { if (OC::$CLI) {
echo 'Background Jobs are disabled!' . PHP_EOL; echo 'Background Jobs are disabled!' . PHP_EOL;
} else { } else {
@ -101,9 +101,9 @@ try {
exit(1); exit(1);
} }
// We call ownCloud from the CLI (aka cron) // We call Nextcloud from the CLI (aka cron)
if ($appMode != 'cron') { if ($appMode !== 'cron') {
\OCP\BackgroundJob::setExecutionType('cron'); $config->setAppValue('core', 'backgroundjobs_mode', 'cron');
} }
// Work // Work

View File

@ -45,6 +45,7 @@ class DeprecationCheck extends AbstractCheck {
'OCP\Response' => '8.1.0', 'OCP\Response' => '8.1.0',
'OCP\AppFramework\IApi' => '8.0.0', 'OCP\AppFramework\IApi' => '8.0.0',
'OCP\User' => '13.0.0', 'OCP\User' => '13.0.0',
'OCP\BackgroundJob' => '14.0.0',
]; ];
} }
@ -116,6 +117,8 @@ class DeprecationCheck extends AbstractCheck {
'OCP\AppFramework\IAppContainer::log' => '8.0.0', 'OCP\AppFramework\IAppContainer::log' => '8.0.0',
'OCP\BackgroundJob::registerJob' => '8.1.0', 'OCP\BackgroundJob::registerJob' => '8.1.0',
'OCP\BackgroundJob::getExecutionType' => '14.0.0',
'OCP\BackgroundJob::setExecutionType' => '14.0.0',
'OCP\Files::tmpFile' => '8.1.0', 'OCP\Files::tmpFile' => '8.1.0',
'OCP\Files::tmpFolder' => '8.1.0', 'OCP\Files::tmpFolder' => '8.1.0',

View File

@ -25,67 +25,32 @@
* *
*/ */
/**
* Public interface of ownCloud for background jobs.
*/
// use OCP namespace for all classes that are considered public.
// This means that they should be used by apps instead of the internal ownCloud classes
namespace OCP; namespace OCP;
/** /**
* This class provides functions to register backgroundjobs in ownCloud
*
* To create a new backgroundjob create a new class that inherits from either \OC\BackgroundJob\Job,
* \OC\BackgroundJob\QueuedJob or \OC\BackgroundJob\TimedJob and register it using
* \OCP\BackgroundJob->registerJob($job, $argument), $argument will be passed to the run() function
* of the job when the job is executed.
*
* A regular Job will be executed every time cron.php is run, a QueuedJob will only run once and a TimedJob
* will only run at a specific interval which is to be specified in the constructor of the job by calling
* $this->setInterval($interval) with $interval in seconds.
* @since 4.5.0 * @since 4.5.0
* @deprecated 14.0.0
*/ */
class BackgroundJob { class BackgroundJob {
/** /**
* get the execution type of background jobs
*
* @return string
*
* This method returns the type how background jobs are executed. If the user
* did not select something, the type is ajax.
* @since 5.0.0 * @since 5.0.0
* @deprecated 14.0.0
*/ */
public static function getExecutionType() { public static function getExecutionType() {
return \OC::$server->getConfig()->getAppValue('core', 'backgroundjobs_mode', 'ajax'); return '';
} }
/** /**
* sets the background jobs execution type
*
* @param string $type execution type
* @return false|null
*
* This method sets the execution type of the background jobs. Possible types
* are "none", "ajax", "webcron", "cron"
* @since 5.0.0 * @since 5.0.0
* @deprecated 14.0.0
*/ */
public static function setExecutionType($type) { public static function setExecutionType($type) {
if( !in_array( $type, array('none', 'ajax', 'webcron', 'cron'))) {
return false;
}
\OC::$server->getConfig()->setAppValue('core', 'backgroundjobs_mode', $type);
} }
/** /**
* @param string $job
* @param mixed $argument
* @deprecated 8.1.0 Use \OC::$server->getJobList()->add() instead
* @since 6.0.0 * @since 6.0.0
* @deprecated 8.1.0 Use \OC::$server->getJobList()->add() instead
*/ */
public static function registerJob($job, $argument = null) { public static function registerJob($job, $argument = null) {
$jobList = \OC::$server->getJobList();
$jobList->add($job, $argument);
} }
} }

View File

@ -29,6 +29,19 @@ namespace OCP\BackgroundJob;
/** /**
* Interface IJobList * Interface IJobList
* *
* This interface provides functions to register background jobs
*
* To create a new background job create a new class that inherits from either
* \OC\BackgroundJob\Job, \OC\BackgroundJob\QueuedJob or
* \OC\BackgroundJob\TimedJob and register it using ->add($job, $argument),
* $argument will be passed to the run() function of the job when the job is
* executed.
*
* A regular job will be executed every time cron.php is run, a QueuedJob will
* only run once and a TimedJob will only run at a specific interval which is to
* be specified in the constructor of the job by calling
* $this->setInterval($interval) with $interval in seconds.
*
* @package OCP\BackgroundJob * @package OCP\BackgroundJob
* @since 7.0.0 * @since 7.0.0
*/ */