aboutsummaryrefslogtreecommitdiffstats
path: root/core/Command
diff options
context:
space:
mode:
authorJulien Veyssier <julien-nc@posteo.net>2024-04-09 11:12:48 +0200
committerJulien Veyssier <julien-nc@posteo.net>2024-05-02 16:43:42 +0200
commitd967151f520ba6c860ed9a727e3363ec04a6506d (patch)
treea630df77e8c5f84c9b7a627ff18cf05723099f4f /core/Command
parent1acc57b5c03b80ad5b6b5df7aff9df0fef83f14f (diff)
downloadnextcloud-server-d967151f520ba6c860ed9a727e3363ec04a6506d.tar.gz
nextcloud-server-d967151f520ba6c860ed9a727e3363ec04a6506d.zip
fix(bg-jobs): review adjustments
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
Diffstat (limited to 'core/Command')
-rw-r--r--core/Command/Background/JobBase.php8
-rw-r--r--core/Command/Background/JobWorker.php25
2 files changed, 23 insertions, 10 deletions
diff --git a/core/Command/Background/JobBase.php b/core/Command/Background/JobBase.php
index 94c9e1611ea..2de5d061378 100644
--- a/core/Command/Background/JobBase.php
+++ b/core/Command/Background/JobBase.php
@@ -32,16 +32,12 @@ use Psr\Log\LoggerInterface;
use Symfony\Component\Console\Output\OutputInterface;
abstract class JobBase extends \OC\Core\Command\Base {
- protected IJobList $jobList;
- protected LoggerInterface $logger;
public function __construct(
- IJobList $jobList,
- LoggerInterface $logger
+ protected IJobList $jobList,
+ protected LoggerInterface $logger
) {
parent::__construct();
- $this->jobList = $jobList;
- $this->logger = $logger;
}
protected function printJobInfo(int $jobId, IJob $job, OutputInterface $output): void {
diff --git a/core/Command/Background/JobWorker.php b/core/Command/Background/JobWorker.php
index 8b7bb6b6fba..0cfe9db940b 100644
--- a/core/Command/Background/JobWorker.php
+++ b/core/Command/Background/JobWorker.php
@@ -26,13 +26,25 @@ declare(strict_types=1);
namespace OC\Core\Command\Background;
use OC\Core\Command\InterruptedException;
+use OC\Files\SetupManager;
+use OCP\BackgroundJob\IJobList;
use OCP\ITempManager;
+use Psr\Log\LoggerInterface;
use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
class JobWorker extends JobBase {
+
+ public function __construct(
+ protected IJobList $jobList,
+ protected LoggerInterface $logger,
+ private ITempManager $tempManager,
+ private SetupManager $setupManager,
+ ) {
+ parent::__construct($jobList, $logger);
+ }
protected function configure(): void {
parent::configure();
@@ -103,7 +115,11 @@ class JobWorker extends JobBase {
$job = $this->jobList->getNext(false, $jobClasses);
if (!$job) {
if ($input->getOption('once') === true) {
- $output->writeln('No job of classes ' . $jobClassesString . ' is currently queued', OutputInterface::VERBOSITY_VERBOSE);
+ if ($jobClassesString === null) {
+ $output->writeln('No job is currently queued', OutputInterface::VERBOSITY_VERBOSE);
+ } else {
+ $output->writeln('No job of classes ' . $jobClassesString . ' is currently queued', OutputInterface::VERBOSITY_VERBOSE);
+ }
$output->writeln('Exiting...', OutputInterface::VERBOSITY_VERBOSE);
break;
}
@@ -120,13 +136,14 @@ class JobWorker extends JobBase {
$this->printJobInfo($job->getId(), $job, $output);
}
- $job->start($this->jobList);
+ /** @psalm-suppress DeprecatedMethod Calling execute until it is removed, then will switch to start */
+ $job->execute($this->jobList);
$output->writeln('Job ' . $job->getId() . ' has finished', OutputInterface::VERBOSITY_VERBOSE);
// clean up after unclean jobs
- \OC_Util::tearDownFS();
- \OC::$server->get(ITempManager::class)->clean();
+ $this->setupManager->tearDown();
+ $this->tempManager->clean();
$this->jobList->setLastJob($job);
$this->jobList->unlockJob($job);