[PHP] repository.slacky.eu lento
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.
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.
- teox99
- Linux 3.x

- Messaggi: 738
- Iscritto il: ven 25 lug 2008, 14:54
- Slackware: 13.37
- Desktop: KDE - Xfce
- Località: Roma[Eur]
- Contatta:
[PHP] repository.slacky.eu lento
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?
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?
- conraid
- Staff

- Messaggi: 13631
- Iscritto il: gio 14 lug 2005, 0:00
- Nome Cognome: Corrado Franco
- Slackware: current64
- Desktop: kde
- Località: Livorno
- Contatta:
Re: [PHP] repository.slacky.eu lento
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 modificatoteox99 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?
comunque slacky.eu è lento, usa un mirror
- teox99
- Linux 3.x

- Messaggi: 738
- Iscritto il: ven 25 lug 2008, 14:54
- Slackware: 13.37
- Desktop: KDE - Xfce
- Località: Roma[Eur]
- Contatta:
Re: [PHP] repository.slacky.eu lento
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
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
- conraid
- Staff

- Messaggi: 13631
- Iscritto il: gio 14 lug 2005, 0:00
- Nome Cognome: Corrado Franco
- Slackware: current64
- Desktop: kde
- Località: Livorno
- Contatta:
Re: [PHP] repository.slacky.eu lento
beh, puoi prenderlo ogni ora, ogni due, tanto viene modificato una volta al giorno solitamenteteox99 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
ma usi curl perché costretto o ti torna meglio?
- teox99
- Linux 3.x

- Messaggi: 738
- Iscritto il: ven 25 lug 2008, 14:54
- Slackware: 13.37
- Desktop: KDE - Xfce
- Località: Roma[Eur]
- Contatta:
Re: [PHP] repository.slacky.eu lento
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?
che ne pensi?
- conraid
- Staff

- Messaggi: 13631
- Iscritto il: gio 14 lug 2005, 0:00
- Nome Cognome: Corrado Franco
- Slackware: current64
- Desktop: kde
- Località: Livorno
- Contatta:
Re: [PHP] repository.slacky.eu lento
Cioè fopen ti da errore?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?
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;
}
?>- teox99
- Linux 3.x

- Messaggi: 738
- Iscritto il: ven 25 lug 2008, 14:54
- Slackware: 13.37
- Desktop: KDE - Xfce
- Località: Roma[Eur]
- Contatta:
Re: [PHP] repository.slacky.eu lento
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.
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.
- conraid
- Staff

- Messaggi: 13631
- Iscritto il: gio 14 lug 2005, 0:00
- Nome Cognome: Corrado Franco
- Slackware: current64
- Desktop: kde
- Località: Livorno
- Contatta:
Re: [PHP] repository.slacky.eu lento
Puoi controllare la data del file locale però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.
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.
- teox99
- Linux 3.x

- Messaggi: 738
- Iscritto il: ven 25 lug 2008, 14:54
- Slackware: 13.37
- Desktop: KDE - Xfce
- Località: Roma[Eur]
- Contatta:
Re: [PHP] repository.slacky.eu lento
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!

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!