PublishItemsJob
class PublishItemsJob extends AbstractQueuedJob implements QueuedJob (View source)
An example queued job
Use this as an example of how you can write your own jobs
Properties
protected | stdClass | $jobData | from AbstractQueuedJob | |
protected | array | $messages | from AbstractQueuedJob | |
protected | int | $totalSteps | from AbstractQueuedJob | |
protected | int | $currentStep | from AbstractQueuedJob | |
protected | bool | $isComplete | from AbstractQueuedJob |
Methods
Sets a data object for persisting by adding its id and type to the serialised vars
Indicate to the system which queue we think we should be in based on how many objects we're going to touch on while processing.
Specifies what user ID should be when running the job valid values: null - (default) - run the job as current user 0 - run the job without a user greater than zero - run the job as a specific user
This is called immediately before a job begins - it gives you a chance to initialise job data and make sure everything's good to go
Method for determining whether the job is finished - you may override it if there's more to it than just this
No description
Gets custom config settings to use when running the job.
Sets custom config settings to use when the job is run.
Convenience methods for setting and getting job data
Details
__construct(DataObject $rootNodeID = null)
No description
string
getTitle()
Defines the title of the job
protected
setObject(DataObject $object, string $name = 'Object')
Sets a data object for persisting by adding its id and type to the serialised vars
protected DataObject|null
getObject(string $name = 'Object')
No description
string
getSignature()
Return a signature for this queued job
protected string
randomSignature()
Generate a somewhat random signature
useful if you're want to make sure something is always added
getJobType()
Indicate to the system which queue we think we should be in based on how many objects we're going to touch on while processing.
We want to make sure we also set how many steps we think we might need to take to process everything - note that this does not need to be 100% accurate, but it's nice to give a reasonable approximation
int|null
getRunAsMemberID()
Specifies what user ID should be when running the job valid values: null - (default) - run the job as current user 0 - run the job without a user greater than zero - run the job as a specific user
This is useful in situations like:
- a job needs to always run without a user (like a static cache job)
- a job needs to run as a specific user (for example data migration job)
Note that this value can be overridden in the QueuedJobService::queueJob()
setup()
This is called immediately before a job begins - it gives you a chance to initialise job data and make sure everything's good to go
What we're doing in our case is to queue up the list of items we know we need to process still (it's not everything - just the ones we know at the moment)
When we go through, we'll constantly add and remove from this queue, meaning we never overload it with content
prepareForRestart()
Run when an already setup job is being restarted.
process()
Lets process a single node, and publish it if necessary
jobFinished()
Method for determining whether the job is finished - you may override it if there's more to it than just this
afterComplete()
Called when the job is determined to be 'complete'
getJobData()
No description
setJobData(int $totalSteps, int $currentStep, bool $isComplete, stdClass $jobData, array $messages)
No description
array|null
getCustomConfig()
Gets custom config settings to use when running the job.
setCustomConfig(array $config)
Sets custom config settings to use when the job is run.
addMessage(string $message, string $severity = 'INFO')
No description
__set(mixed $name, mixed $value)
Convenience methods for setting and getting job data
mixed
__get(mixed $name)
Retrieve some job data
protected
getRoot()
No description