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 Cake\Chronos\Chronos;
|
||||
use Pterodactyl\Models\Schedule;
|
||||
use Cake\Chronos\ChronosInterface;
|
||||
use Pterodactyl\Services\Schedules\Tasks\RunTaskService;
|
||||
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.
|
||||
*
|
||||
* @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)) {
|
||||
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);
|
||||
$this->repository->shouldReceive('update')->with($model->id, [
|
||||
'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();
|
||||
|
@ -84,7 +84,7 @@ class ProcessScheduleServiceTest extends TestCase
|
|||
|
||||
$this->repository->shouldReceive('update')->with($model->id, [
|
||||
'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();
|
||||
|
|
Loading…
Reference in a new issue