Fix handling of times
This commit is contained in:
parent
178b8f8ce6
commit
bcb3f5d5fa
2 changed files with 7 additions and 6 deletions
|
@ -6,6 +6,7 @@ use DateTimeInterface;
|
||||||
use Cron\CronExpression;
|
use Cron\CronExpression;
|
||||||
use Cake\Chronos\Chronos;
|
use Cake\Chronos\Chronos;
|
||||||
use Pterodactyl\Models\Schedule;
|
use Pterodactyl\Models\Schedule;
|
||||||
|
use Cake\Chronos\ChronosInterface;
|
||||||
use Pterodactyl\Services\Schedules\Tasks\RunTaskService;
|
use Pterodactyl\Services\Schedules\Tasks\RunTaskService;
|
||||||
use Pterodactyl\Contracts\Repository\ScheduleRepositoryInterface;
|
use Pterodactyl\Contracts\Repository\ScheduleRepositoryInterface;
|
||||||
|
|
||||||
|
@ -84,14 +85,14 @@ class ProcessScheduleService
|
||||||
* Get the timestamp to store in the database as the next_run time for a schedule.
|
* Get the timestamp to store in the database as the next_run time for a schedule.
|
||||||
*
|
*
|
||||||
* @param string $formatted
|
* @param string $formatted
|
||||||
* @return string
|
* @return \Cake\Chronos\ChronosInterface
|
||||||
*/
|
*/
|
||||||
private function getRunAtTime(string $formatted)
|
private function getRunAtTime(string $formatted): ChronosInterface
|
||||||
{
|
{
|
||||||
if (! is_null($this->runTimeOverride)) {
|
if (! is_null($this->runTimeOverride)) {
|
||||||
return $this->runTimeOverride->format(Chronos::ATOM);
|
return $this->runTimeOverride instanceof ChronosInterface ? $this->runTimeOverride : Chronos::instance($this->runTimeOverride);
|
||||||
}
|
}
|
||||||
|
|
||||||
return CronExpression::factory($formatted)->getNextRunDate()->format(Chronos::ATOM);
|
return Chronos::instance(CronExpression::factory($formatted)->getNextRunDate());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@ class ProcessScheduleServiceTest extends TestCase
|
||||||
$formatted = sprintf('%s %s %s * %s', $model->cron_minute, $model->cron_hour, $model->cron_day_of_month, $model->cron_day_of_week);
|
$formatted = sprintf('%s %s %s * %s', $model->cron_minute, $model->cron_hour, $model->cron_day_of_month, $model->cron_day_of_week);
|
||||||
$this->repository->shouldReceive('update')->with($model->id, [
|
$this->repository->shouldReceive('update')->with($model->id, [
|
||||||
'is_processing' => true,
|
'is_processing' => true,
|
||||||
'next_run_at' => CronExpression::factory($formatted)->getNextRunDate()->format(Chronos::ATOM),
|
'next_run_at' => Chronos::parse(CronExpression::factory($formatted)->getNextRunDate()->format(Chronos::ATOM)),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$this->runnerService->shouldReceive('handle')->with($task)->once()->andReturnNull();
|
$this->runnerService->shouldReceive('handle')->with($task)->once()->andReturnNull();
|
||||||
|
@ -84,7 +84,7 @@ class ProcessScheduleServiceTest extends TestCase
|
||||||
|
|
||||||
$this->repository->shouldReceive('update')->with($model->id, [
|
$this->repository->shouldReceive('update')->with($model->id, [
|
||||||
'is_processing' => true,
|
'is_processing' => true,
|
||||||
'next_run_at' => Chronos::now()->addSeconds(15)->toAtomString(),
|
'next_run_at' => Chronos::now()->addSeconds(15),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$this->runnerService->shouldReceive('handle')->with($task)->once()->andReturnNull();
|
$this->runnerService->shouldReceive('handle')->with($task)->once()->andReturnNull();
|
||||||
|
|
Loading…
Reference in a new issue