Files
piratepoet/lib/Cron/CronWorkerScheduler.php
Amine Ben hammou 43df66d162 Add public keyword to methods
[MAILPOET-2413]
2019-12-26 18:09:45 +03:00

42 lines
1.1 KiB
PHP

<?php
namespace MailPoet\Cron;
use MailPoet\Models\ScheduledTask;
use MailPoet\WP\Functions as WPFunctions;
use MailPoetVendor\Carbon\Carbon;
class CronWorkerScheduler {
/** @var WPFunctions */
private $wp;
public function __construct(WPFunctions $wp) {
$this->wp = $wp;
}
public function schedule($task_type, $next_run_date) {
$already_scheduled = ScheduledTask::where('type', $task_type)
->whereNull('deleted_at')
->where('status', ScheduledTask::STATUS_SCHEDULED)
->findMany();
if ($already_scheduled) {
return false;
}
$task = ScheduledTask::create();
$task->type = $task_type;
$task->status = ScheduledTask::STATUS_SCHEDULED;
$task->priority = ScheduledTask::PRIORITY_LOW;
$task->scheduled_at = $next_run_date;
$task->save();
return $task;
}
public function reschedule(ScheduledTask $task, $timeout) {
$scheduled_at = Carbon::createFromTimestamp($this->wp->currentTime('timestamp'));
$task->scheduled_at = $scheduled_at->addMinutes($timeout);
$task->setExpr('updated_at', 'NOW()');
$task->status = ScheduledTask::STATUS_SCHEDULED;
$task->save();
}
}