mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-19 13:22:42 +01:00
make Trigger Daemon sleep correctly when one-time triggers exist
Summary: Trigger daemon is trying to find the next event to invoke before sleeping, but the query includes already-elapsed triggers. It then tries to sleep for 0 seconds. Test Plan: On a new instance, schedule a single trigger of type `PhabricatorOneTimeTriggerClock` to a very near time. Use top to see trigger daemon not going to 100% CPU once the event has elapsed. Reviewers: #blessed_reviewers, epriestley Subscribers: Korvin Differential Revision: https://secure.phabricator.com/D15750
This commit is contained in:
parent
091a64e91b
commit
a3bb35e9d2
1 changed files with 2 additions and 1 deletions
|
@ -261,7 +261,7 @@ final class PhabricatorTriggerDaemon
|
|||
* Get the number of seconds to sleep for before starting the next scheduling
|
||||
* phase.
|
||||
*
|
||||
* If no events are scheduled soon, we'll sleep for 60 seconds. Otherwise,
|
||||
* If no events are scheduled soon, we'll sleep briefly. Otherwise,
|
||||
* we'll sleep until the next scheduled event.
|
||||
*
|
||||
* @return int Number of seconds to sleep for.
|
||||
|
@ -272,6 +272,7 @@ final class PhabricatorTriggerDaemon
|
|||
$next_triggers = id(new PhabricatorWorkerTriggerQuery())
|
||||
->setViewer($this->getViewer())
|
||||
->setOrder(PhabricatorWorkerTriggerQuery::ORDER_EXECUTION)
|
||||
->withNextEventBetween(0, null)
|
||||
->setLimit(1)
|
||||
->needEvents(true)
|
||||
->execute();
|
||||
|
|
Loading…
Reference in a new issue