Page MenuHomePhorge
Diviner Tech Docs PhabricatorWorker

abstract class PhabricatorWorker
Phorge Technical Documentation (Daemons)

This class is not documented.

Tasks

Configuring Retries and Failures

  • public function getRequiredLeaseTime() — Return the number of seconds this worker needs hold a lease on the task for while it performs work. For most tasks you can leave this at `null`, which will give you a default lease (currently 2 hours).
  • public function getMaximumRetryCount() — Return the maximum number of times this task may be retried before it is considered permanently failed. By default, tasks retry indefinitely. You can throw a @{class:PhabricatorWorkerPermanentFailureException} to cause an immediate permanent failure.
  • public function getWaitBeforeRetry($task) — Return the number of seconds a task should wait after a failure before retrying. For most tasks you can leave this at `null`, which will give you a short default retry period (currently 60 seconds).

Other Methods

Methods

public function __get($name)
Inherited

This method is not documented.
Parameters
$name
Return
wild

public function __set($name, $value)
Inherited

This method is not documented.
Parameters
$name
$value
Return
wild

public function current()
Inherited

This method is not documented.
Return
wild

public function key()
Inherited

This method is not documented.
Return
wild

public function next()
Inherited

This method is not documented.
Return
wild

public function rewind()
Inherited

This method is not documented.
Return
wild

public function valid()
Inherited

This method is not documented.
Return
wild

private function throwOnAttemptedIteration()
Inherited

This method is not documented.
Return
wild

public function getPhobjectClassConstant($key, $byte_limit)
Inherited

Phobject

Read the value of a class constant.

This is the same as just typing self::CONSTANTNAME, but throws a more useful message if the constant is not defined and allows the constant to be limited to a maximum length.

Parameters
string$keyName of the constant.
int|null$byte_limitMaximum number of bytes permitted in the value.
Return
stringValue of the constant.

public function getRequiredLeaseTime()

Return the number of seconds this worker needs hold a lease on the task for while it performs work. For most tasks you can leave this at null, which will give you a default lease (currently 2 hours).

For tasks which may take a very long time to complete, you should return an upper bound on the amount of time the task may require.

Return
int|nullNumber of seconds this task needs to remain leased for, or null for a default lease.

public function getMaximumRetryCount()

Return the maximum number of times this task may be retried before it is considered permanently failed. By default, tasks retry indefinitely. You can throw a PhabricatorWorkerPermanentFailureException to cause an immediate permanent failure.

Return
int|nullNumber of times the task will retry before permanent failure. Return `null` to retry indefinitely.

public function getWaitBeforeRetry($task)

Return the number of seconds a task should wait after a failure before retrying. For most tasks you can leave this at null, which will give you a short default retry period (currently 60 seconds).

Parameters
PhabricatorWorkerTask$taskThe task itself. This object is probably useful mostly to examine the failure count if you want to implement staggered retries, or to examine the execution exception if you want to react to different failures in different ways.
Return
int|nullNumber of seconds to wait between retries, or null for a default retry period (currently 60 seconds).

public function setCurrentWorkerTask($task)

This method is not documented.
Parameters
PhabricatorWorkerTask$task
Return
wild

public function getCurrentWorkerTask()

This method is not documented.
Return
wild

public function getCurrentWorkerTaskID()

This method is not documented.
Return
wild

abstract protected function doWork()

This method is not documented.
Return
wild

final public function __construct($data)

This method is not documented.
Parameters
$data
Return
this//Implicit.//

final protected function getTaskData()

This method is not documented.
Return
wild

final protected function getTaskDataValue($key, $default)

This method is not documented.
Parameters
$key
$default
Return
wild

final public function executeTask()

This method is not documented.
Return
wild

final public static function scheduleTask($task_class, $data, $options)

This method is not documented.
Parameters
$task_class
$data
$options
Return
wild

public function renderForDisplay($viewer)

This method is not documented.
Parameters
PhabricatorUser$viewer
Return
wild

public static function setRunAllTasksInProcess($all)

Set this flag to execute scheduled tasks synchronously, in the same process. This is useful for debugging, and otherwise dramatically worse in every way imaginable.

Parameters
$all
Return
wild

final protected function log($pattern)

This method is not documented.
Parameters
$pattern
Return
wild

final protected function queueTask($class, $data, $options)

Queue a task to be executed after this one succeeds.

The followup task will be queued only if this task completes cleanly.

Parameters
string$classTask class to queue.
array$dataData for the followup task.
array$optionsOptions for the followup task.
Return
this

final protected function getQueuedTasks()

Get tasks queued as followups by queueTask().

Return
list<tuple<string, wild, int|null>>Queued task specifications.

final public function flushTaskQueue($defaults)

Schedule any queued tasks, then empty the task queue.

By default, the queue is flushed only if a task succeeds. You can call this method to force the queue to flush before failing (for example, if you are using queues to improve locking behavior).

Parameters
map<string,$defaultswild> Optional default options.
Return
wild

final public static function awakenTaskIDs($ids)

Awaken tasks that have yielded.

Reschedules the specified tasks if they are currently queued in a yielded, unleased, unretried state so they'll execute sooner. This can let the queue avoid unnecessary waits.

This method does not provide any assurances about when these tasks will execute, or even guarantee that it will have any effect at all.

Parameters
list<id>$idsList of task IDs to try to awaken.
Return
void

protected function newContentSource()

This method is not documented.
Return
wild