@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
at recaptime-dev/main 32 lines 727 B view raw
1<?php 2 3/** 4 * Triggers an event repeatedly, delaying a fixed number of seconds between 5 * triggers. 6 * 7 * For example, this clock can trigger an event every 30 seconds. 8 */ 9final class PhabricatorMetronomicTriggerClock extends PhabricatorTriggerClock { 10 11 public function validateProperties(array $properties) { 12 PhutilTypeSpec::checkMap( 13 $properties, 14 array( 15 'period' => 'int', 16 )); 17 } 18 19 public function getNextEventEpoch($last_epoch, $is_reschedule) { 20 $period = $this->getProperty('period'); 21 22 if ($last_epoch) { 23 $next = $last_epoch + $period; 24 $next = max($next, $last_epoch + 1); 25 } else { 26 $next = PhabricatorTime::getNow() + $period; 27 } 28 29 return $next; 30 } 31 32}