1ukas
7.03.2013, 19:19:37
Witam,
napisalem skrypt w PHP, ktory pobiera dane (grafiki) z innej strony. Na poczatku danych bylo malo i nie bylo problemu z czasem wykonywania skryptu, jednak z czasem danych zrobilo sie coraz wiecej i czasem czas wykonywania skryptu przekracza 5 min. Oczywiscie moge zwiekszac limit na serwerze, ale widze, ze nie tedy droga.
Czy ktos z bardziej doswiadczonych osob moglby poradzic mi co zrobic w takiej sytuacji? Czy przepisac skrypt na inny jezyk? Po pobraniu grafik nie sa juz dokonywane na nich zadne operacje.
Z gory dziekuje za porady.
wNogachSpisz
7.03.2013, 19:25:02
Jest niby coś takiego jak curl_multi, niestety, pisanie wielowątkowego kodu php jest bolesne.
1ukas
7.03.2013, 19:32:21
A moze PHP'em moglbym pobrac tylko linki do grafik i zapisac je w bazie MySQL a czyms innym pobrac pliki na podstawie danych z bazy?
Takie rozwiazanie wydaje sie rozsadniejsze. Niestety nie wiem co byloby tutaj najlepsze.
Zacznijmy od tego, co to znaczy że "pobierasz grafiki"? Na bazie adresu zapisujesz je u siebie na serwerze? Jak? Pokaż kod.
1ukas
7.03.2013, 20:00:44
Mam taka prosta petelke:
for ($i=1; $i<=100; $i++)
{
$im = "http://adres.com/img/1/$i";
$filename = "img/" .$i .".jpg";
}
copy($im, ''.$filename.''); }
Tak byłoby lepiej
for ($i=1; $i<=100; $i++)
{
$filename = 'img/'.$i.'.jpg';
{
}
file_put_contents($filename, $im);
}
Mikrozmiany, ale nie uzależniasz się od copy, które nie zawsze działa.
I o jakich ilościach mówimy? 10k, milion?
1ukas
7.03.2013, 20:23:40
Ilosci to 0,5-2k za jednym razem, ale rozmiar jednego pliku moze dochodzic do 1MB.
wNogachSpisz
7.03.2013, 22:33:52
Zależy jakie są Twoje wymagania, czy np. wystarczy że z początku znać będziesz tylko rozmiar obrazka (metoda HEAD), pobieranie mógłbyś w ów czas odłożyć na później,
1ukas
7.03.2013, 22:48:45
A jak w praktyce wykonac takie pobranie w pozniejszym czasie?
wNogachSpisz
7.03.2013, 22:55:40
zapewne wrzucic do bazy danych, nazwać tabelę "quened_downloads", link do pliku w kolumnie "image_link" i atakować CRONem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.