Ho una pagina php che deve scrivere su un database a volte all'inizio dello script.PHP: ignora MySql Query se richiede più tempo di un secondo
Durante un backup mysqldump pianificato, la pagina non è accessibile, perché sta tentando di scrivere su una tabella bloccata.
Durante il blocco, MySql accoda gli aggiornamenti SQL e, una volta completato il backup, vengono eseguiti come desiderato. Tuttavia la mia pagina php non verrà visualizzata fino al completamento del backup.
Tuttavia, poiché gli aggiornamenti non restituiscono nulla allo script, vorrei che non avrebbero bloccato il mio script durante il blocco; Spero che ci sia un modo in cui posso dire a php di inviare l'aggiornamento sql a mysql e non preoccuparti della conferma che l'aggiornamento è stato completato.
Voglio che php invii la query a mysql e quindi continui semplicemente sulla riga successiva di php se l'aggiornamento non viene completato in un secondo.
Sto eseguendo php su un server Windows, quindi capisco che un certo tipo di thread non è un'opzione.
Se c'è un modo per impostare un timeout su quella query (nello specifico), ciò potrebbe essere l'ideale, ma non voglio rinominare l'aggiornamento sql del tutto se scade. Voglio comunque che MySQL lo elabori dopo che il blocco è scomparso.
Cosa raccomanderesti (dato che rimuovere gli aggiornamenti sql del tutto non è un'opzione)?
Non possibile. PHP non ha alcun controllo sulla meccanica delle chiamate di query. PHP non è threadato, indipendentemente dal sistema operativo su cui è in esecuzione. –
Se PHP ha qualche tipo di funzione di timeout che potrebbe incapsulare qualsiasi altra chiamata di funzione mentre si posiziona un timeout sulla funzione incapsulata, sarebbe tecnicamente multithreading? –
No. PHP non supporta il threading e molto probabilmente non diventerà mai multithread senza una riscrittura fondamentale dell'intera lingua, ad es. PHP v6. La maggior parte delle librerie di base PHP non sono thread-safe. –