示例#1
0
 /**
  * Listen to the minute cron in order to sync data to ElasticSearch
  *
  * @param string $hook        the name of the hook
  * @param string $type        the type of the hook
  * @param string $returnvalue current return value
  * @param array  $params      supplied params
  *
  * @return void
  */
 public static function minuteSync($hook, $type, $returnvalue, $params)
 {
     $setting = elasticsearch_get_setting('sync');
     if ($setting !== 'yes') {
         // sync not enabled
         return;
     }
     $client = elasticsearch_get_client();
     if (empty($client)) {
         return;
     }
     $starttime = (int) elgg_extract('time', $params, time());
     // delete first
     $client->bulkDeleteDocuments();
     $update_actions = array('no_index_ts', 'update', 'reindex');
     foreach ($update_actions as $action) {
         $options = elasticsearch_get_bulk_options($action);
         if (empty($options)) {
             continue;
         }
         $getter = '';
         if ($action === 'no_index_ts') {
             $getter = 'elgg_get_entities';
         }
         $time_left = self::batchSync($options, $starttime, $getter);
         if ($time_left === false) {
             return;
         }
     }
 }
示例#2
0
$options['count'] = true;
$count = elgg_get_entities($options);
$content .= '<tr>';
$content .= '<td>' . elgg_echo('elasticsearch:stats:elgg:no_index_ts') . '</td>';
$content .= "<td>{$count}</td>";
$content .= '</tr>';
// content to update
$options = elasticsearch_get_bulk_options('update');
$options['count'] = true;
$count = elgg_get_entities_from_private_settings($options);
$content .= '<tr>';
$content .= '<td>' . elgg_echo('elasticsearch:stats:elgg:update') . '</td>';
$content .= "<td>{$count}</td>";
$content .= '</tr>';
// content to reindex
$options = elasticsearch_get_bulk_options('reindex');
$count = 0;
if (!empty($options)) {
    $options['count'] = true;
    $count = elgg_get_entities_from_private_settings($options);
}
$content .= '<tr>';
$content .= '<td>' . elgg_echo('elasticsearch:stats:elgg:reindex');
$reindex_title = elgg_echo('elasticsearch:stats:elgg:reindex:action');
$last_ts = (int) elasticsearch_get_setting('reindex_ts');
if (!empty($last_ts)) {
    $reindex_title .= '&#10;&#10;' . elgg_echo('elasticsearch:stats:elgg:reindex:last_ts', [date('c', $last_ts)]);
}
$content .= elgg_view('output/url', ['confirm' => true, 'href' => 'action/elasticsearch/admin/reindex', 'text' => elgg_view_icon('refresh'), 'title' => $reindex_title, 'class' => 'mlm']);
$content .= '</td>';
$content .= "<td>{$count}</td>";