id = $id; $this->interval = abs($interval); $this->callback = $callback; } /** * @inheritDoc */ final public function getID() { return $this->id; } /** * @inheritDoc */ public function canRun() { // always runnable return true; } /** * @inheritDoc */ public function getNextExecution(DateTime $lastExecution) { $nextExecution = clone $lastExecution; $nextExecution->modify('+' . $this->interval . ' seconds'); return $nextExecution; } /** * @inheritDoc */ public function execute(VBOCrontabLogger $logger) { // invoke the callback call_user_func_array($this->callback, [$logger]); } }