private function RadioactivityProcessor::processFieldDecay in Radioactivity 8.3
Same name and namespace in other branches
- 4.0.x src/RadioactivityProcessor.php \Drupal\radioactivity\RadioactivityProcessor::processFieldDecay()
Update entities attached to given field storage.
Parameters
\Drupal\field\FieldStorageConfigInterface $fieldConfig: Configuration of the field to be processed.
Return value
int The number of processed entities.
1 call to RadioactivityProcessor::processFieldDecay()
- RadioactivityProcessor::processDecay in src/
RadioactivityProcessor.php - Apply decay to entities.
File
- src/
RadioactivityProcessor.php, line 165
Class
- RadioactivityProcessor
- Class RadioactivityProcessor.
Namespace
Drupal\radioactivityCode
private function processFieldDecay(FieldStorageConfigInterface $fieldConfig) {
$fieldName = $fieldConfig
->get('field_name');
$entityType = $fieldConfig
->getTargetEntityTypeId();
$query = $this->entityTypeManager
->getStorage($entityType)
->getQuery()
->condition($fieldName . '.timestamp', $this->requestTime, ' <= ')
->condition($fieldName . '.energy', NULL, 'IS NOT NULL')
->condition($fieldName . '.energy', 0, '>')
->AccessCheck(FALSE);
$entityIds = $query
->execute();
// Delegate processing to a queue worker to prevent memory errors when large
// number of entities are processed.
$chunks = array_chunk($entityIds, self::QUEUE_CHUNK_SIZE, TRUE);
foreach ($chunks as $chunk) {
$queue = $this->queue
->get(self::QUEUE_WORKER_DECAY);
$queue
->createItem([
'field_config' => $fieldConfig,
'entity_ids' => $chunk,
]);
}
return count($entityIds);
}