You are here

class ActivityWorkerLogger in Open Social 8.2

Same name and namespace in other branches
  1. 8.9 modules/custom/activity_creator/src/Plugin/QueueWorker/ActivityWorkerLogger.php \Drupal\activity_creator\Plugin\QueueWorker\ActivityWorkerLogger
  2. 8 modules/custom/activity_creator/src/Plugin/QueueWorker/ActivityWorkerLogger.php \Drupal\activity_creator\Plugin\QueueWorker\ActivityWorkerLogger
  3. 8.3 modules/custom/activity_creator/src/Plugin/QueueWorker/ActivityWorkerLogger.php \Drupal\activity_creator\Plugin\QueueWorker\ActivityWorkerLogger
  4. 8.4 modules/custom/activity_creator/src/Plugin/QueueWorker/ActivityWorkerLogger.php \Drupal\activity_creator\Plugin\QueueWorker\ActivityWorkerLogger
  5. 8.5 modules/custom/activity_creator/src/Plugin/QueueWorker/ActivityWorkerLogger.php \Drupal\activity_creator\Plugin\QueueWorker\ActivityWorkerLogger
  6. 8.6 modules/custom/activity_creator/src/Plugin/QueueWorker/ActivityWorkerLogger.php \Drupal\activity_creator\Plugin\QueueWorker\ActivityWorkerLogger
  7. 8.7 modules/custom/activity_creator/src/Plugin/QueueWorker/ActivityWorkerLogger.php \Drupal\activity_creator\Plugin\QueueWorker\ActivityWorkerLogger
  8. 8.8 modules/custom/activity_creator/src/Plugin/QueueWorker/ActivityWorkerLogger.php \Drupal\activity_creator\Plugin\QueueWorker\ActivityWorkerLogger
  9. 10.3.x modules/custom/activity_creator/src/Plugin/QueueWorker/ActivityWorkerLogger.php \Drupal\activity_creator\Plugin\QueueWorker\ActivityWorkerLogger
  10. 10.0.x modules/custom/activity_creator/src/Plugin/QueueWorker/ActivityWorkerLogger.php \Drupal\activity_creator\Plugin\QueueWorker\ActivityWorkerLogger
  11. 10.1.x modules/custom/activity_creator/src/Plugin/QueueWorker/ActivityWorkerLogger.php \Drupal\activity_creator\Plugin\QueueWorker\ActivityWorkerLogger
  12. 10.2.x modules/custom/activity_creator/src/Plugin/QueueWorker/ActivityWorkerLogger.php \Drupal\activity_creator\Plugin\QueueWorker\ActivityWorkerLogger

A report worker.

@QueueWorker( id = "activity_creator_logger", title = @Translation("Process activity loggers."), cron = {"time" = 60} )

This QueueWorker is responsible for processing ActivityLog items and will retrieve recipients batched and then create new queue items for processing in QueueWorker ActivityWorkerActivities.

Hierarchy

Expanded class hierarchy of ActivityWorkerLogger

File

modules/custom/activity_creator/src/Plugin/QueueWorker/ActivityWorkerLogger.php, line 18

Namespace

Drupal\activity_creator\Plugin\QueueWorker
View source
class ActivityWorkerLogger extends ActivityWorkerBase {

  /**
   * The ActivityContext manager.
   *
   * @var \Drupal\activity_creator\Plugin\ActivityContextManager
   */
  protected $contextPluginManager;

  /**
   * The state.
   *
   * @var \Drupal\Core\State\
   */
  protected $state;

  /**
   * {@inheritdoc}
   */
  public function processItem($data) {

    // Get 100 Recipients at a time.
    $limit = 0;

    // TODO: Move all this logic to a service.
    // TODO: Change this to use dependency injection.
    $context_plugin_manager = \Drupal::service('plugin.manager.activity_context.processor');

    /* @var $plugin \Drupal\activity_creator\Plugin\ActivityContextBase */

    // @TODO Do we need multiple context plugins? If so should we call Manager?
    $plugin = $context_plugin_manager
      ->createInstance($data['context']);
    $recipients = $plugin
      ->getRecipients($data, $data['last_uid'], $limit);
    if (!empty($recipients)) {
      foreach ($recipients as $recipient) {

        // Create a queue item for activity creation.
        $activity_creator_data = [
          'mid' => $data['mid'],
          'message_template' => $data['message_template'],
          'actor' => $data['actor'],
          'context' => $data['context'],
          'destination' => $data['destination'],
          'related_object' => $data['related_object'],
          'recipient' => $recipient,
        ];
        $this
          ->createQueueItem('activity_creator_activities', $activity_creator_data);
        $last_uid = $recipient;
      }

      // Now create new queue item for activity_creator_logger if necessary.
      if ($limit != 0 && count($recipients) >= $limit && isset($last_uid)) {
        $data['last_uid'] = $last_uid;
        $data['status'] = 'processing';
        $this
          ->createQueueItem('activity_creator_logger', $data);
      }
    }
    else {
      $activity_creator_data = [
        'mid' => $data['mid'],
        'message_template' => $data['message_template'],
        'actor' => $data['actor'],
        // Not necessary?
        'context' => $data['context'],
        'destination' => $data['destination'],
        'related_object' => $data['related_object'],
      ];
      $this
        ->createQueueItem('activity_creator_activities', $activity_creator_data);
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
ActivityWorkerBase::createQueueItem protected function Simple reporter log and display information about the queue.
ActivityWorkerLogger::$contextPluginManager protected property The ActivityContext manager.
ActivityWorkerLogger::$state protected property The state.
ActivityWorkerLogger::processItem public function Works on a single queue item. Overrides QueueWorkerInterface::processItem
PluginBase::$configuration protected property Configuration information passed into the plugin. 1
PluginBase::$pluginDefinition protected property The plugin implementation definition. 1
PluginBase::$pluginId protected property The plugin_id.
PluginBase::DERIVATIVE_SEPARATOR constant A string which is used to separate base plugin IDs from the derivative ID.
PluginBase::getBaseId public function Gets the base_plugin_id of the plugin instance. Overrides DerivativeInspectionInterface::getBaseId
PluginBase::getDerivativeId public function Gets the derivative_id of the plugin instance. Overrides DerivativeInspectionInterface::getDerivativeId
PluginBase::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition 3
PluginBase::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
PluginBase::isConfigurable public function Determines if the plugin is configurable.
PluginBase::__construct public function Constructs a \Drupal\Component\Plugin\PluginBase object. 92
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.