Repository 32bit  Forum
Repository 64bit  Wiki

[PHP] repository.slacky.eu lento

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

[PHP] repository.slacky.eu lento

Messaggioda teox99 » lun mag 11, 2009 12:17

ciao ho creato un motore di ricerca dei paccehtti slackware con php

http://www.teoxonline.com/utils/sse/

usando le curl apro il file ...repo/FILELISTS.TXT (circa 2mb)
per la gran parte dei repo / mirrors ecc... il processo è pressocchè immediato,
solo per repository.slacky.eu è sensibilmente più lento degli altri, dato che ho sviluppato questo tool più che altro per slacky.eu...
la cosa mi fà al quanto stranire...

qualche idea?
Avatar utente
teox99
Linux 2.6
Linux 2.6
 
Messaggi: 728
Iscritto il: ven lug 25, 2008 13:54
Località: Roma[Eur]
Slackware: 13.37
Desktop: KDE - Xfce

Re: [PHP] repository.slacky.eu lento

Messaggioda conraid » lun mag 11, 2009 12:21

teox99 ha scritto:ciao ho creato un motore di ricerca dei paccehtti slackware con php

http://www.teoxonline.com/utils/sse/

usando le curl apro il file ...repo/FILELISTS.TXT (circa 2mb)
per la gran parte dei repo / mirrors ecc... il processo è pressocchè immediato,
solo per repository.slacky.eu è sensibilmente più lento degli altri, dato che ho sviluppato questo tool più che altro per slacky.eu...
la cosa mi fà al quanto stranire...

qualche idea?


a parte che mi sembra un procedimento sbagliato prendere ogni volta il file, fallo una volta e tienilo in cache, e magari controlla se è stato modificato
comunque slacky.eu è lento, usa un mirror
Avatar utente
conraid
Staff
Staff
 
Messaggi: 11987
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: [PHP] repository.slacky.eu lento

Messaggioda teox99 » lun mag 11, 2009 12:24

il caching del file è il prox step,
ma con php (curl) non riesco ad a vere la data del file, l'unico modo che ho è quello comunque di aprirlo e prendere la prima riga che riporta la data... quindi non cambierebbe nulla
Avatar utente
teox99
Linux 2.6
Linux 2.6
 
Messaggi: 728
Iscritto il: ven lug 25, 2008 13:54
Località: Roma[Eur]
Slackware: 13.37
Desktop: KDE - Xfce

Re: [PHP] repository.slacky.eu lento

Messaggioda conraid » lun mag 11, 2009 12:37

teox99 ha scritto:il caching del file è il prox step,
ma con php (curl) non riesco ad a vere la data del file, l'unico modo che ho è quello comunque di aprirlo e prendere la prima riga che riporta la data... quindi non cambierebbe nulla


beh, puoi prenderlo ogni ora, ogni due, tanto viene modificato una volta al giorno solitamente
ma usi curl perché costretto o ti torna meglio?
Avatar utente
conraid
Staff
Staff
 
Messaggi: 11987
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: [PHP] repository.slacky.eu lento

Messaggioda teox99 » lun mag 11, 2009 12:45

sono costretto perche non c'è modo di aprire una pagine web senza incorrere in un permesso negato da parte del server, poi essendo su aruba non posso nè usare bash (wget ecc...) e ne impostare un cron che mi scarichi il file ogni tot...
che ne pensi?
Avatar utente
teox99
Linux 2.6
Linux 2.6
 
Messaggi: 728
Iscritto il: ven lug 25, 2008 13:54
Località: Roma[Eur]
Slackware: 13.37
Desktop: KDE - Xfce

Re: [PHP] repository.slacky.eu lento

Messaggioda conraid » lun mag 11, 2009 12:58

teox99 ha scritto:sono costretto perche non c'è modo di aprire una pagine web senza incorrere in un permesso negato da parte del server, poi essendo su aruba non posso nè usare bash (wget ecc...) e ne impostare un cron che mi scarichi il file ogni tot...
che ne pensi?


Cioè fopen ti da errore?
perché, ora non ricordo se conviene in termini di download, ma una cosa tipo
$file = fopen("url_del_file", "r" );
e poi usare filemtime() sullo stream potrebbe essere vantaggioso in termini di prestazioni, ma dovresti provare

sul manuale php trovi anche esempi di classi

Codice: Seleziona tutto
<?php

function filemtime_remote($uri)
{
    $uri = parse_url($uri);
    $handle = @fsockopen($uri['host'],80);
    if(!$handle)
        return 0;

    fputs($handle,"GET $uri[path] HTTP/1.1\r\nHost: $uri[host]\r\n\r\n");
    $result = 0;
    while(!feof($handle))
    {
        $line = fgets($handle,1024);
        if(!trim($line))
            break;

        $col = strpos($line,':');
        if($col !== false)
        {
            $header = trim(substr($line,0,$col));
            $value = trim(substr($line,$col+1));
            if(strtolower($header) == 'last-modified')
            {
                $result = strtotime($value);
                break;
            }
        }
    }
    fclose($handle);
    return $result;
}
// echo filemtime_remote('http://www.somesite.com/someimage.jpg');

?>


Codice: Seleziona tutto
<?php

// get remote file last modification date (returns unix timestamp)
function GetRemoteLastModified( $uri )
{
    // default
    $unixtime = 0;
   
    $fp = fopen( $uri, "r" );
    if( !$fp ) {return;}
   
    $MetaData = stream_get_meta_data( $fp );
       
    foreach( $MetaData['wrapper_data'] as $response )
    {
        // case: redirection
        if( substr( strtolower($response), 0, 10 ) == 'location: ' )
        {
            $newUri = substr( $response, 10 );
            fclose( $fp );
            return GetRemoteLastModified( $newUri );
        }
        // case: last-modified
        elseif( substr( strtolower($response), 0, 15 ) == 'last-modified: ' )
        {
            $unixtime = strtotime( substr($response, 15) );
            break;
        }
    }
    fclose( $fp );
    return $unixtime;
}
?>
Avatar utente
conraid
Staff
Staff
 
Messaggi: 11987
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: [PHP] repository.slacky.eu lento

Messaggioda teox99 » lun mag 11, 2009 14:31

grazie x l'aiuto,
usando fsockopen la funzione mi restituisce 0 invece fopen funziona bene, ma le prestazioni in confronto alle curl mi sembrano le stesse, quindi per comodità apro il file con le curl e leggo la data con fopen. a questo punto posso fare una cache per il repo di slacky, unico problema è che non posso mettere un cronjob sul server di aruba... mi inventerò qualcosa.
Avatar utente
teox99
Linux 2.6
Linux 2.6
 
Messaggi: 728
Iscritto il: ven lug 25, 2008 13:54
Località: Roma[Eur]
Slackware: 13.37
Desktop: KDE - Xfce

Re: [PHP] repository.slacky.eu lento

Messaggioda conraid » lun mag 11, 2009 14:45

teox99 ha scritto:grazie x l'aiuto,
usando fsockopen la funzione mi restituisce 0 invece fopen funziona bene, ma le prestazioni in confronto alle curl mi sembrano le stesse, quindi per comodità apro il file con le curl e leggo la data con fopen. a questo punto posso fare una cache per il repo di slacky, unico problema è che non posso mettere un cronjob sul server di aruba... mi inventerò qualcosa.


Puoi controllare la data del file locale però
Ad ogni accesso di un utente controlli la data, se è ok, cioè se non è passato un tot da tempo da prestabilito usi il file in locale, altrimenti scarichi nuovamente il file.
Avatar utente
conraid
Staff
Staff
 
Messaggi: 11987
Iscritto il: mer lug 13, 2005 23:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: [PHP] repository.slacky.eu lento

Messaggioda teox99 » mar mag 12, 2009 9:33

ciao conraid,

ho risolto cachando i file che impiegano più di 3 secondi ad essere downloadati, ora il risultato è che i repo di slacky.eu sono i più veloci!
;)
Avatar utente
teox99
Linux 2.6
Linux 2.6
 
Messaggi: 728
Iscritto il: ven lug 25, 2008 13:54
Località: Roma[Eur]
Slackware: 13.37
Desktop: KDE - Xfce


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti