2011-12-22 21 views
10

Ho pochi cronjob che riassumono i dati e convalidano i dati per il mio sito. Alcuni di loro hanno processi che devono essere eseguiti in background.processi in esecuzione in background php

Esempio:

cronjob1.php execute cronjob2.php using exec 

Questo cronjob2.php corre un altro cronjob3.php utilizzando exec e cronjob3 ha bisogno di essere completato finitura poi cronjob2 e poi cronjob.

Attualmente ho un problema in cui il cronjob1.php richiede 2 ore per terminare.

c'è un modo migliore per eseguire questo in modo che corra più veloce?

Grazie

+3

che tipo di compiti coloro cron sono facendo? difficile per noi giudicare se può correre più veloce – RageZ

+0

riepilogare i dati e convalidare le statistiche dei visitatori, le statistiche sui prodotti - cpa, cpc, # di ordini ecc ... –

+0

qualche consiglio generico, provare ad avere una connessione persistente al database, ottimizzare il tuo database creando un indice specifico e provando a semplificare o ottimizzare la logica dei tuoi script – RageZ

risposta

18

C'è poche cose che si possono fare:

  • assicurarsi che lo script utilizza connessione permanente, in questo modo non sarà possibile perdere tempo collegare e scollegare dal server di database.
  • implementare un meccanismo di registrazione, quindi è possibile identificare quale parte dello script viene eseguita lentamente, la registrazione del tempo trascorso su ogni query del database sarebbe una buona idea
  • cercare di ottimizzare il database il più possibile, è necessario utilizzare spiegare su query lente e creare gli indici necessari.
0

se cronjob1 hanno molti operazione di database di creare procedure del deposito per vedere che e rendere l'indicizzazione su uso più campi della tabella

questo aumentare le prestazioni cronjob ....

Problemi correlati