Processo Cron XML Fetcher: eseguire la frequenza e il numero di recuperi?

StackOverflow https://stackoverflow.com/questions/411512

  •  03-07-2019
  •  | 
  •  

Domanda

Ho uno script PHP su un webhost condiviso che seleziona tra ~ 300 "feed" i 40 che non sono stati aggiornati nell'ultima mezz'ora, fa una richiesta cURL e poi lo consegna all'utente.

SELECT * FROM table WHERE latest_scan < NOW() - INTERVAL 30 MINUTE ORDER BY latest_scan ASC LIMIT 0, 40;
// Make cURL request and process it

Voglio essere in grado di fornire gli aggiornamenti il più velocemente possibile , ma non voglio impantanare il mio server o i server da cui sto recuperando (è solo una manciata).

Con quale frequenza devo eseguire il processo cron e limitare il numero di recuperi per esecuzione? A quanti?

È stato utile?

Soluzione

Sarebbe una buona cosa "valutare" la frequenza con cui ogni feed cambia effettivamente, quindi se qualcosa ha un tempo medio di 24 ore per modifica, il recupero è solo ogni 12 ore.

Memorizza solo #changes e # try's e scegli quelli che devi controllare ... puoi eseguire lo script ogni minuto e lasciare che alcune statistiche facciano il resto!

Altri suggerimenti

Su un host condiviso potresti anche riscontrare problemi di runtime dello script. Ad esempio, se lo script viene eseguito per più di 30 secondi, il server potrebbe terminare. Se questo è il caso per il tuo host, potresti voler fare alcuni test / registrazione di quanto tempo ci vuole per elaborare ciascun feed e tenerne conto quando capisci quanti feed dovresti elaborare contemporaneamente.

Un'altra cosa che dovevo fare per aiutare a risolvere questo problema era contrassegnare l '"ultima scansione" come aggiornato prima ho elaborato ogni singola richiesta in modo che un feed problematico non continuasse a fallire e venisse raccolto per ogni esecuzione cron. Se lo si desidera, è possibile aggiornare nuovamente la voce in caso di errore e specificare un motivo (se noto) per cui si è verificato l'errore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top