private function api_istruttori_in_affiancamento_cerca() { $me = $this->richiediLogin(); $r = new Ricerca(); /* Ordini personalizzati per vari usi */ $ordini = ['selettore' => ['pertinenza DESC']]; if ($this->par['ordine'] && isset($ordini[$this->par['ordine']])) { $r->ordine = $ordini[$this->par['ordine']]; } if ($this->par['stato']) { $r->stato = $this->par['stato']; } elseif ($this->par['stato'] === 0) { $r->stato = 0; } if ($this->par['statoPersona']) { $r->statoPersona = $this->par['statoPersona']; } elseif ($this->par['statoPersona'] === 0) { $r->statoPersona = 0; } else { $r->statoPersona = false; } if ($this->par['passato']) { $r->passato = true; } if ($this->par['giovane']) { $r->giovane = true; } if ($this->par['infermiera']) { $r->infermiera = true; } if ($this->par['militare']) { $r->militare = true; } // versione modificata per #867 if ($this->par['comitati']) { $g = GeoPolitica::daOid($this->par['comitati']); // bisogna avere permessi di lettura sul ramo if (!$me->puoLeggereDati($g)) { throw new Errore(1016); } $com = $g->estensione(); } else { $com = array_merge($me->comitatiApp([APP_PRESIDENTE, APP_SOCI, APP_OBIETTIVO]), $me->geopoliticheAttivitaReferenziate(), $me->comitatiAreeDiCompetenza(true)); } $r->comitati = $com; if ($this->par['query']) { $r->query = $this->par['query']; } if ($this->par['pagina']) { $r->pagina = (int) $this->par['pagina']; } if ($this->par['perPagina']) { $r->perPagina = (int) $this->par['perPagina']; } $r->esegui(); $risultati = []; foreach ($r->risultati as $risultato) { $risultati[] = $risultato->toJSONRicerca(); } $risposta = ['tempo' => $r->tempo, 'totale' => $r->totale, 'pagina' => $r->pagina, 'pagine' => $r->pagine, 'perPagina' => $r->perPagina, 'risultati' => $risultati]; return $risposta; }
$nuovi = $cache->get('test_worker_terminati'); $daAvviare = $nuovi - $fatto; for ($i = 0; $i < $daAvviare; $i++) { $n = $fatto + ($i + 1); avviaWorker($n, $stress[$n]); } $fatto = $nuovi; usleep(100); } $tempo = microtime(true) - $start; echo "\n== Sommatoria tempi worker: "; echo round($cache->get('test_totale_tempo'), 6); echo " secondi"; echo "\n== RISULTATO MULTITHREAD : "; echo round($tempo, 6); echo " secondi\n"; } else { /* SONO UN WORKER QUALUNQUE */ $worker_id = (int) $argv[2]; $start = microtime(true); /* ESECUZIONE WORKER */ $termine = $argv[3]; $r = new Ricerca(); $r->query = $termine; $r->perPagina = 100000; $r->pagina = 1; $r->esegui(); $tempo = microtime(true) - $start; $cache->incrByFloat('test_totale_tempo', $tempo); $cache->incrBy('test_worker_terminati', 1); }