Autor | Zpráva | ||
---|---|---|---|
spiider Profil * |
#1 · Zasláno: 4. 5. 2011, 09:48:16
Ahoj, napsal jsem si skript, který v cyklu přídává řetězec do png obrázku, který pak uloží a vytvoří z něho pdf soubor. Toto se provede x krát, podle toho jaké číslo se zadá. Takže kdybych chtěl vytvořit např. 400 pdf tak do formuláře se zadá 400 a mělo by to vytvořit 400 pdf souborů, které na závěr zazipuju. Ovšem vše je strašně časově náročné, takže pokud zadám jenom 30 souborů už to píše Fatal error: Maximum execution time of 30 seconds exceeded..... nemáte někdo tip jak toto vyřešit popř. urychlit?? na tvorbu pdf používám mpdf a na vytvoření zipu knihovnu zib.lib.php
Díky za rady |
||
ShiraNai7 Profil |
#2 · Zasláno: 4. 5. 2011, 10:02:23
K čemu přesně je dobré mít 400 stejných pdf souborů v jednom archívu?
|
||
spiider Profil * |
#3 · Zasláno: 4. 5. 2011, 10:18:24
Není to 400 stejných souborů ale do každého obrázku se vygeneruje 6-ti místný řetězec a přidá se tam. Potřebuju to na generování poukazů, když je nutné to vědět ;)
Jinak jsem pomocí set_time_limit(0); vypnul časové omezení ale teď nevím zda to nezatíží extrémně server. Jelikož sem změřil že 10 obrázků trvá 15s. |
||
Louka Profil |
#4 · Zasláno: 4. 5. 2011, 10:35:47
spiider:
Můžeš to dělat po dávkách, aby to nebylo najednou. |
||
Chro Profil |
#5 · Zasláno: 4. 5. 2011, 11:29:20
spiider:
Bez ukázky celého kódu ti, myslím, nikdo kloudně neporadí. Určitě by to šlo optimalizovat. Dělám něco podobného. Generuju jen 1 PNG obrázek s textem 300x200 px, 40 kB, ostřím ho ještě funkcí imageconvolution a proces trvá ~0,05 sekundy. |
||
tany Profil * |
#6 · Zasláno: 4. 5. 2011, 16:11:03
použít ajax a volat script ajaxem třeba na 10 pdf ..
1) script.php Bude obsahovat form, a smyčku. Vygeneruješ pole v javascriptu (třeba jquery) a ajax pak bude postupně posílat get na script2 ( script2.php?id1=xxxxxx&id2= xxxxx .. 2) script2.php bude zachytávat get a podle něho generovat pdf. |
||
nethor Profil |
#7 · Zasláno: 4. 5. 2011, 23:44:52
tany:
To přestane fungovat v okamžiku, kdy uživatel stratí trpělivost a shodí okno prohlížeče. Řešení by bylo poznamenat si požadavek do databáze a spouštět po přijatelných dávkách. Pokud to jde, tak přes chron, v horším případě při každém přístupu na index.php. |
||
spiider Profil * |
#8 · Zasláno: 5. 5. 2011, 10:52:02
Diky za reakce, zkusím požadavek uložit a postupně vykonat v rozumných dávkách. Díky
|
||
tany Profil * |
#9 · Zasláno: 5. 5. 2011, 12:24:24
nethor:
no to je jasný, ale předpokládám, že tuhle šílenost nebudou spouštět uživatelé, ale jen on .. takže to pustí a může jít ven. Parsery webů (seznamy firem apod ..) co jsem dělal fungují taky tak a nikdy si žádný zákazník nestěžoval - a to ten script běžel třeba 4 hodiny ( sparsovat cca půl miliónu stránek není hnedka) Tohle je podle mě nejjednodušší na implementaci .. |
||
Časová prodleva: 13 let
|
0