Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 36

Discussione: robot

  1. #1

    robot

    Ciao a tutti
    Ho nel database una tabella con una lista di file che rispondono a indirizzi remoti. Per ognuno di questi, devo eseguire due operazioni: parsing del file, e inserimento di nuovi dati ottenuti tramite parsing nel database.

    Non ho particolari problemi ad eseguire queste due operazioni: ho già creato uno scriptino al cui richiamo viene eseguito un ciclo del db, l'estrazione gli url, il parsing e l'inserimento nel db.

    PROBLEMA: gli url sono meno di una ventina, e lo script ci mette 20-25 secondi in media.
    Penso che succeda perchè, essendo ogni elemento un file remoto, c'è di mezzo il tempo di risposta e financo il possibile timeout (30 secondi) - per ogni file.

    Nell'idea finale, questo sarebbe uno script da richiamarsi tramite CRON JOB a intervalli regolari ma abbastanza stretti (nell'ordine dei 2-5 minuti al massimo, per capirci), e dovrebbe parsare centinaia di migliaia (forse anche milioni) di URL.

    Ovviamente, a lasciarlo così com'è, ci metterebbe una eternità. Voi come fareste per creare un robottino che sia in grado di scandagliare migliaia di file remoti senza andare in time-out?

    Avevo pensato all'idea di spezzettarlo: ovvero prendi 10-15 record dal db e per ogni "tranche" esegui il ciclo, il parsing e l'inserimento. Questo mi permetterebbe un grande incremento di velocità, ma non ho idea di quali siano le controindicazioni.

    Insomma, sono un po' in alto mare.... mi date una mano nella progettazione di questo robot?
    Grazie

  2. #2

  3. #3
    semplicemente, se dovessi fare un robot che processa milioni di record non lo farei in PHP tramite cronjob.

    Il PHP è pensato per applicazioni web interattive, quello sarebbe un processo batch molto pesante, non mi sembra la tecnologia migliore.

  4. #4
    Uhm, quindi in pratica mi stai dicendo che non ci sono modi semplici per fare questa cosa in php?
    Che tecnologia useresti? C/C++, Phyton, java, o che altro?

  5. #5
    Originariamente inviato da Petro_suse91
    Uhm, quindi in pratica mi stai dicendo che non ci sono modi semplici per fare questa cosa in php?
    Che tecnologia useresti? C/C++, Phyton, java, o che altro?
    Beh, semplice vuol dire tutto e niente. Probabilmente a livello di comprensibilità del codice quello PHP sarebbe più semplice, essendo un linguaggio ad altissimo livello ed avendo funzioni native per fare gran parte delle cose che ti servono, ma secondo me non è la tecnologia giusta, per via del tipo di carico richiesto.
    Voglio dire che il PHP può andare molto bene per tante richieste simultanee che iniziano e terminano nel giro di qualche decimo, mentre tu hai bisogno di un software che giri in singolo task in continuo o quasi processando questi dati finché la CPU lo regge.

    Non ti serve nemmeno un webserver, visto che è il programma non risponde alle richieste esterne ma gira per i fatti suoi.

    Probabilmente opterei per qualcosa di compilabile, mi orienterei su C++ e derivati.

  6. #6
    Scusa, mi sono espresso male dicendo "semplice"

    In effetti sì, questo "coso" girerebbe per conto suo, non avrebbe bisogno di input esterni... ma solo di una fonte di dati, che però sta "lì, di fianco a lui" (il database). E poi dovrebbe rispondere aggiungendo record sempre allo stesso DB. Nient'altro.

    Vedo di informarmi un po' sul C++, (sperando di riuscire a fare relativamente in fretta questa cosa)

    grazie mille, almeno ora so dove guardare

  7. #7
    Originariamente inviato da Petro_suse91
    Vedo di informarmi un po' sul C++
    Magari dai uno sguardo al C#, non ne so quasi niente ma da quel che ho capito potrebbe essere un po' più semplice del C++, magari chiedi sul forum di programmazione.

    Io conosco il C++ ed è parecchio una mattonata, se non hai il giusto tempo da dedicargli.

  8. #8
    VOLO sul forum programmazione.
    Ah, scusami, quasi dimenticavo... riguardo allo "spezzettare" il carico in tanti piccoli task da eseguire contemporaneamente, potrebbe essere una soluzione valida a livello logico o è un errore e porterebbe il carico alle stelle?

  9. #9
    se le cifre sono quelle dire che dovrai dividere il lavoro su + macchine

    ciao

  10. #10
    Originariamente inviato da bubu77
    se le cifre sono quelle dire che dovrai dividere il lavoro su + macchine

    ciao
    Azz, si fa più complesso del previsto... :master:

    Bah, le sfide son fatte per essere vinte!
    (con l'aiuto del forum )
    Grazie amici

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.