Di seguito è riportato il codice con cui ho terminato l'implementazione della cometa.cakephp comet usleep blocca tutto
$lastmodif = isset($this->params['form']['timestamp']) ? $this->params['form']['timestamp'] : 0;
$currentmodif = $already_updated[0]['Update']['lastmodified'];
while ($currentmodif <= $lastmodif)
{
usleep(5000000);
clearstatcache();
$already_updated_new = $this->Update->find('all',array
(
'conditions' => array
(
'Update.receiver_id' => $this->Auth->user('id'),
'Update.table_name' => "request_responses"
)
));
$currentmodif = $already_updated_new[0]['Update']['lastmodified'];
}
$already_updated[0]['Update']['lastmodified']
è il risultato della query per ottenere l'ultimo timestamp aggiornato della tabella.
Nel codice precedente $ lastmodif e $ currentmodif è il timestamp che viene passato dopo ogni risposta corretta della cometa.
Ma ora il problema è che quando faccio clic su altri collegamenti nella stessa pagina non accade nulla, ma dopo aver atteso così a lungo il suo reindirizzamento.
penso che usleep blocca altre richieste HTTP
.
sto usando mysql e cakephp per favore ragazzi guidami cosa devo fare per risolvere questo problema.
Ho provato a svuotare quando viene chiamato la pagina ma non è possibile modificare l'errore di intestazione perché l'output è già stato inviato.
Grazie.
Hai trovato una soluzione per questo? se l'hai fatto, ti preghiamo di scrivere una risposta, se non lo facessi, sarebbe utile se fornisci il codice di visualizzazione. Potrei essere in grado di aiutarti. – luchomolina
Non l'ho trovato ... –