class SearchUpdateQueuedJobProcessor extends SearchUpdateBatchedProcessor implements QueuedJob (View source)

Traits

Provides extensions to this object to integrate it with standard config API methods.

Properties

static private int $batch_size

Maximum number of record-states to process in one batch.

from  SearchUpdateBatchedProcessor
static private int $batch_soft_cap

Up to this number of additional ids can be added to any batch in order to reduce the number of batches

from  SearchUpdateBatchedProcessor
static private string $reindex_queue

The QueuedJob queue to use when processing updates

Methods

addDirtyIDs($class, $statefulids, $index)

No description

bool
process()

Process the current queue

triggerProcessing()

No description

static Config_ForClass
config()

Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).

mixed
stat(string $name) deprecated

Get inherited config value

mixed
uninherited(string $name)

Gets the uninherited value for the given config option

$this
set_stat(string $name, mixed $value) deprecated

Update the config value for a given property

batchData()

No description

string
getTitle()

Gets a title for the job that can be used in listings

string
getSignature()

Gets a unique signature for this job and its current parameters.

getJobType()

What type of job is this? Options are

  • QueuedJob::IMMEDIATE
  • QueuedJob::QUEUED
  • QueuedJob::LARGE

jobFinished()

Returns true or false to indicate that this job is finished

setup()

Setup this queued job. This is only called the first time this job is executed (ie when currentStep is 0)

prepareForRestart()

Called whenever a job is restarted for whatever reason.

afterComplete()

No description

getJobData()

Return the current job state as an object containing data

setJobData(int $totalSteps, int $currentStep, bool $isComplete, stdClass $jobData, array $messages)

Sets data about the job

addMessage(string $message, $severity = 'INFO')

Add an arbitrary text message into a job

Details

addDirtyIDs($class, $statefulids, $index)

Parameters

$class
$statefulids
$index

bool process()

Process the current queue

Return Value

bool

Flag indicating success

triggerProcessing()

static Config_ForClass config()

Get a configuration accessor for this class. Short hand for Config::inst()->get($this->class, .....).

Return Value

Config_ForClass

mixed stat(string $name) deprecated

deprecated 5.0 Use ->config()->get() instead

Get inherited config value

Parameters

string $name

Return Value

mixed

mixed uninherited(string $name)

Gets the uninherited value for the given config option

Parameters

string $name

Return Value

mixed

$this set_stat(string $name, mixed $value) deprecated

deprecated 5.0 Use ->config()->set() instead

Update the config value for a given property

Parameters

string $name
mixed $value

Return Value

$this

string getTitle()

Gets a title for the job that can be used in listings

Return Value

string

string getSignature()

Gets a unique signature for this job and its current parameters.

This is used so that a job isn't added to a queue multiple times - this for example, an indexing job might be added every time an item is saved, but it isn't processed immediately. We dont NEED to do the indexing more than once (ie the first indexing will still catch any subsequent changes), so we don't need to have it in the queue more than once.

If you have a job that absolutely must run multiple times, the AbstractQueuedJob class provides a time sensitive randomSignature() method that can be used for returning a random signature each time

Return Value

string

getJobType()

What type of job is this? Options are

  • QueuedJob::IMMEDIATE
  • QueuedJob::QUEUED
  • QueuedJob::LARGE

jobFinished()

Returns true or false to indicate that this job is finished

setup()

Setup this queued job. This is only called the first time this job is executed (ie when currentStep is 0)

prepareForRestart()

Called whenever a job is restarted for whatever reason.

This is a separate method so that broken jobs can do some fixup before restarting.

afterComplete()

getJobData()

Return the current job state as an object containing data

stdClass ( 'totalSteps' => the total number of steps in this job - this is relayed to the user as an indicator of time 'currentStep' => the current number of steps done so far. 'isComplete' => whether the job is finished yet 'jobData' => data that the job wants persisted when it is stopped or started 'messages' => a cumulative array of messages that have occurred during this job so far )

setJobData(int $totalSteps, int $currentStep, bool $isComplete, stdClass $jobData, array $messages)

Sets data about the job

is an inverse of the getJobData() method, but being explicit about what data is set

Parameters

int $totalSteps
int $currentStep
bool $isComplete
stdClass $jobData
array $messages

addMessage(string $message, $severity = 'INFO')

Add an arbitrary text message into a job

Parameters

string $message
$severity