2023-07-20 07:31:51 -04:00
|
|
|
<?php
|
2025-06-30 09:04:05 -04:00
|
|
|
|
2023-07-20 07:31:51 -04:00
|
|
|
/**
|
2024-05-10 09:09:14 -04:00
|
|
|
* SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors
|
|
|
|
|
* SPDX-License-Identifier: AGPL-3.0-or-later
|
2023-07-20 07:31:51 -04:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
namespace Test\BackgroundJob;
|
|
|
|
|
|
|
|
|
|
use OCP\AppFramework\Utility\ITimeFactory;
|
2025-06-12 12:31:58 -04:00
|
|
|
use OCP\BackgroundJob\Job;
|
|
|
|
|
use OCP\Server;
|
2023-07-20 07:31:51 -04:00
|
|
|
|
2025-06-12 12:31:58 -04:00
|
|
|
class TestParallelAwareJob extends Job {
|
2023-07-20 07:31:51 -04:00
|
|
|
/**
|
|
|
|
|
* @var callable $callback
|
|
|
|
|
*/
|
|
|
|
|
private $callback;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @param JobTest $testCase
|
|
|
|
|
* @param callable $callback
|
|
|
|
|
*/
|
2025-06-12 12:31:58 -04:00
|
|
|
public function __construct(
|
|
|
|
|
?ITimeFactory $time = null,
|
|
|
|
|
private $testCase = null,
|
|
|
|
|
$callback = null,
|
|
|
|
|
) {
|
|
|
|
|
parent::__construct($time ?? Server::get(ITimeFactory::class));
|
2023-07-20 07:31:51 -04:00
|
|
|
$this->setAllowParallelRuns(false);
|
|
|
|
|
$this->callback = $callback;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function run($argument) {
|
|
|
|
|
$this->testCase->markRun();
|
|
|
|
|
$callback = $this->callback;
|
|
|
|
|
$callback($argument);
|
|
|
|
|
}
|
|
|
|
|
}
|