Zadejte hledaný výraz...

Php script timeout

dosekt
verified
rating uzivatele
27. 8. 2013 18:43:32
Potřeboval bych nějaký vylepšení php scriptu, jelikož mám VPS a i při nastavení všech time na max - 5minut mi script něco zabíjí, potřebuji z eshopu dostat přes tento script něco přes 13tis produktů, jde nějak udělat že by šel script po částech?? díky za jakoukoliv informaci jak na to.
27. 8. 2013 18:43:32
https://webtrh.cz/diskuse/php-script-timeout/#reply938423
Frostbit.cz
verified
rating uzivatele
(2 hodnocení)
27. 8. 2013 20:28:52
Pokud se ten php script pustí přímo z SSH pomocí php q /cesta/ke/scriptu.php tak to neprojde?
Např. php -q /var/www/domena.cz/web/muj-script.php > /dev/null
27. 8. 2013 20:28:52
https://webtrh.cz/diskuse/php-script-timeout/#reply938422
dosekt
verified
rating uzivatele
27. 8. 2013 20:37:23
Napsal Frostbit.cz;991134
Pokud se ten php script pustí přímo z SSH pomocí php q /cesta/ke/scriptu.php tak to neprojde?
Např. php -q /var/www/domena.cz/web/muj-script.php > /dev/null
Pouštím ho přímou cestou na script v prohlížeči, ssh shel maj nějak omezený a nevyužívám mám manage v adminu
27. 8. 2013 20:37:23
https://webtrh.cz/diskuse/php-script-timeout/#reply938421
kire
verified
rating uzivatele
27. 8. 2013 22:11:19
Pokiaľ ten skript nenapíšeš tak, aby dáta pýtal po častiach, tak on to tak sám od seba robiť nebude. Skús skript upraviť tak, aby spracoval len pár desiatok/stoviek záznamov (neviem akým spôsobom dáta vyberáš, takže bližšie nedokážem špecifikovať) - ak to prejde, vieš v čom je problém.
27. 8. 2013 22:11:19
https://webtrh.cz/diskuse/php-script-timeout/#reply938420
dosekt
verified
rating uzivatele
27. 8. 2013 22:18:48
Tak tento je pro heureku:
#####################################################################
# Heureka XML Feed Generator pro Prestashop #
# (c) 2012 All Elektro Ostrava, All rights reserved #
# http://web.allelektro.cz - info@allelektro.cz #
#####################################################################
# #
# Tento script je možné libovolne modifikovat podle potreb a #
# požadavku serveru Heureka.cz #
# Naše spolecnost nenese žádnou zodpovednost za chyby zpusobené #
# zásahem do tohoto kódu, jeho úpravou nebo chybným použití. #
# Script je urcen pouze pro generování XML feedu pro server #
# Heureka.cz #
#####################################################################
$shopUrl = "http://".$_SERVER;
$shopName = 'WEB.cz'; /// upravit název stránek
include(dirname(__FILE__).'/config/config.inc.php');/// zkonrolovat cestu
include(dirname(__FILE__).'/init.php'); /// zkontrolovat cestu
error_reporting(0);
$p=Product::getProducts(4, 0, 0, 'id_product', 'desc', false);/// zkontrolovat správnost ID ceštiny
$products=Product::getProductsProperties(4, $p);/// zkontrolovat správnost ID ceštiny
header("Content-Type: text/xml");
echo '
'.$shopName.'
'.$shopUrl.'';
foreach ($products AS $row){
if ($row > 0) // vynechání zboží, u kterého není uvedena cena nebo je cena nulová
{
if ($row){
$kategorie=array();
$category = new Category(intval($row), intval(4));
while ($category->id <> 1) {
$kategorie[]=$category->hideCategoryPosition($category->name);
$category = new Category(intval($category->id_parent), intval(4));
}
$img=Product::getCover($row);
if ($row=='') // pokud u zboží není uveden short description je doplnen defaultní text
{
$row='detailni informace nejsou k dispozici';
}
echo '
'.str_replace("&", "&", $row).'
'.str_replace("&", "&", $row).' '.str_replace("&", "and", strip_tags($row)).'
'.str_replace("&", "&", $row).' '.str_replace("&", "and", strip_tags($row)).'
'.str_replace("&", "&", $row).' '.str_replace("&", "and", strip_tags($row)).'.'.str_replace("&", "and", strip_tags($row)).'
'.str_replace("&", "and", strip_tags($row)).'.'.str_replace("&", "and", strip_tags($row)).'
'.$row.'
'.implode('|',array_reverse($kategorie)).'
'.$shopUrl.'/img/p/'.$row.'-'.$img.'-home.jpg
'.($row*1).'
2
new
';
}
}
}
echo '
';
/// upravit - pocet dní dorucení
/// pokud používáte mód rewrite (tzv. hezké URL), mužete upravit rádek 57 na
/// '.$shopUrl.'/'.$img.'-thickbox/'.$row.'-'.$row.'.jpg
?>
27. 8. 2013 22:18:48
https://webtrh.cz/diskuse/php-script-timeout/#reply938419
Nishkam
verified
rating uzivatele
(3 hodnocení)
27. 8. 2013 22:53:08
a nejde tam nastavit http://php.net/manual/en/function.set-time-limit.php ?
27. 8. 2013 22:53:08
https://webtrh.cz/diskuse/php-script-timeout/#reply938418
Jan Matoušek
verified
rating uzivatele
(12 hodnocení)
27. 8. 2013 22:59:14
no nevím, ale 13 000 řádků za 5 minut mi přijde sakra dlouhá doba. Buď optimalizovat script, nebo to dělat po částech, jak tu bylo řečeno. Co třeba explain dotazů? Jsou dobře indexy?
27. 8. 2013 22:59:14
https://webtrh.cz/diskuse/php-script-timeout/#reply938417
dosekt
verified
rating uzivatele
28. 8. 2013 05:32:04
Napsal Jan Matoušek;991216
no nevím, ale 13 000 řádků za 5 minut mi přijde sakra dlouhá doba. Buď optimalizovat script, nebo to dělat po částech, jak tu bylo řečeno. Co třeba explain dotazů? Jsou dobře indexy?
Rád bych dělal po částech ale nevím jak na to:) explain netuším nemám zkušenost
28. 8. 2013 05:32:04
https://webtrh.cz/diskuse/php-script-timeout/#reply938416
mylkin
verified
rating uzivatele
(7 hodnocení)
28. 8. 2013 09:45:33
Napsal dosekt;991072
Potřeboval bych nějaký vylepšení php scriptu, jelikož mám VPS a i při nastavení všech time na max - 5minut mi script něco zabíjí, potřebuji z eshopu dostat přes tento script něco přes 13tis produktů, jde nějak udělat že by šel script po částech?? díky za jakoukoliv informaci jak na to.
ak mas vps a mas root pristup nerozumiem preco nemozes spustit skript cez konzolu, kde moze bezat neobmedzene dlho
mozes skript zacat napr:
28. 8. 2013 09:45:33
https://webtrh.cz/diskuse/php-script-timeout/#reply938415
crs
verified
rating uzivatele
(1 hodnocení)
28. 8. 2013 19:01:26
Napsal dosekt;991271
Rád bych dělal po částech ale nevím jak na to:) explain netuším nemám zkušenost
Tip: Do tabulky produktů si přidej sloupeček s datem/časem posledního provedeného exportu. Při exportu vybíráš ty produkty, které toto datum/čas mají neaktualizované a po exportu každého produktu toto datum/čas aktualizuješ. Předpokládám, že export spouští Cron. Navrhni tedy několik spuštění pár minut po sobě s takovým počtem produktů na spuštění, kolik skript bezpečně zvládne, aniž by hodil timeout (např. zvládne-li 5 tisíc, tak 3 x 5000 produktů). V URL spuštěného skriptu uvedeš jako parametr offset a limit, který si skript vezme a použije v SQL dotazu. Problém toho, že výsledek musí být v jednom souboru, můžeš vyřešit buď postupným přepisováním koncového tagu nebo exportem do dočasného souboru, který nakonec přejmenuješ.
28. 8. 2013 19:01:26
https://webtrh.cz/diskuse/php-script-timeout/#reply938414
Pro odpověď se přihlašte.
Přihlásit