abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:00 | IT novinky

    Řemínky pro Apple Watch, bezdrátová sluchátka nebo nabíjecí adaptéry. Takovou nabídku našli v uplynulých dnech příslušníci Celního úřadu v Liberci při kontrole kamenného obchodu na Náchodsku. Celkem zde zadrželi 3 035 kusů zboží podezřelého z porušování práv duševního vlastnictví. Pokud by se jednalo o originální výrobky, jejich hodnota by podle odhadu přesáhla 10,8 milionu korun.

    Ladislav Hagara | Komentářů: 4
    dnes 14:11 | Nová verze

    Byla vydána verze 31.1 textového editoru GNU Emacs. Podrobný přehled novinek v souboru NEWS.

    Ladislav Hagara | Komentářů: 3
    dnes 12:22 | Nová verze

    Webový prohlížeč Waterfox (Wikipedie), fork Firefoxu, byl vydán ve verzi 6.7.0. Postaven je na jádru Gecko ESR 153.

    Ladislav Hagara | Komentářů: 0
    dnes 11:22 | Nová verze

    Multiplatformní open source voxelový herní engine Luanti byl vydán ve verzi 5.17.0. Podrobný přehled novinek v changelogu. Přidána byla základní podpora gamepadů. Opraveno bylo několik zranitelností. Původně se jedná o Minecraftem inspirovaný Minetest v říjnu loňského roku přejmenovaný na Luanti.

    Ladislav Hagara | Komentářů: 0
    dnes 11:00 | IT novinky

    Americká technologická společnost Apple loni v Irsku na daních zaplatila 17 miliard dolarů (zhruba 350 miliard Kč). To představovalo 40 procent celkové částky, kterou firma odvedla na dani z příjmů po celém světě. Vyplývá to z účetních výkazů podniku. Platbu výrazně zvýšilo rozhodnutí Soudního dvora EU z roku 2024, podle něhož měl Apple doplatit Irsku na daních 13 miliard eur (313 miliard Kč).

    Ladislav Hagara | Komentářů: 0
    dnes 09:55 | Zajímavý projekt

    CrossPoint Reader je open-source alternativní firmware pro menší, levné čtečky, vybavené cca čtyřpalcovým e-ink displejem. Zahrnuje aplikaci pro čtení e-knih a webový server pro konfiguraci a přenos souborů po síti. Verze 1.0 byla vydána v únoru 2026. Recenze současné verze 1.5 vyšla na Linux Weekly News.

    |🇵🇸 | Komentářů: 0
    21.8. 05:00 | Nová verze

    Byla vydána verze 1.98.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    21.8. 04:22 | Nová verze

    Byla vydána nová verze 7.1 (YouTube) svobodného open source redakčního systému WordPress. Kódové jméno Mary Lou bylo vybráno na počest americké jazzové klavíristky Mary Lou Williams (YouTube).

    Ladislav Hagara | Komentářů: 0
    20.8. 19:11 | Nová verze

    Bun (Wikipedie), tj. běhové prostředí (runtime) a toolkit pro JavaScript a TypeScript, alternativa k Node.js a Deno, byl vydán ve verzi 1.4. Představení novinek také na YouTube. Bun byl přepsán z programovacího jazyka Zig do Rustu. Pomocí Claude Fable 5.

    Ladislav Hagara | Komentářů: 0
    20.8. 12:33 | Nová verze

    Vývojáři KDE na Mastodonu oznámili vydání balíku aplikací KDE Gear 26.08. Přehled novinek i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (7%)
     (2%)
     (19%)
     (29%)
     (7%)
     (6%)
     (2%)
     (15%)
     (22%)
    Celkem 2492 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: PHP obejití timeoutů

    14.11.2010 03:31 /lKA0/
    PHP obejití timeoutů
    Přečteno: 484×
    Dobrý den. Píšu v php webový program, který bude načítat ohromné množství dat ze souborů a ukládat je do relační databáze. Je mi jasné, že pokud bude větší množství dat, že se skript neprovede protože dojde k nějakému timeoutu. Jak se mohu těmto timeoutům vyhnout jestliže nemám přímo možnost upravit si hodnoty v php.ini? Určitě by fungovalo to, že budu soubor číst po blocích a potom vždy refreshnu stránku a budu pokračovat, jenže tohle řešení se mi moc nelíbí. Nenapadá vás jak by se to dalo vyřešit líp?

    Odpovědi

    14.11.2010 10:45 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: PHP obejití timeoutů
    Musí to být webový skript? Nebylo by lepší to udělat "normálním" (tj. newebovým) skriptem nebo programem? Ten b y se dal spouštět ručně (pokud je to jednorázová věc), z CRONu apod.

    Nicméně jako nejjednodušší vypadá změna timeoutu v php.ini. To, že ho změnit nemůžeš, vypadá na to, že jseš na nějakém ultralevném hostingu, takže tam asi nebudeš moci spouštět nic jiného, než PHP s timeoutem přes web, že...
    14.11.2010 11:44 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: PHP obejití timeoutů
    Pokud nejsou speciální nastavení, ta je to tak, že bu jste v safe_mode nebo ne.
    Zjistíte to pomicí fce phpinfo(),scriptem třeba takto:
    <?php
    phpinfo();
    ?>
    
    V bloku PHP Core je proměnná safe_mode, a pokud je on, tak nemáte možnost dobu běhu skriptu (a další) upravit.
    Takže můžete udělat jen to že si ten čas zjistíte, a před ukončením limitu akci korektně přerušíte, uložíte nějakou restartovací značku (třeba do cookies). A akci ze strany klienta provedete znovu od restartovací značky.
    $x= restartovací značka, když není tak 0;
    $stoptime = time() + (int) (ini_get('max_execution_time') * 0.7);
    for (;$x < 1000;$x++)
    {
      if(time() > $stoptime)
      { 
        save_position($x);
        free_resources();
        echo "Time limit reached, restart it again from $x";
        exit();
      }
      //dělej něco
      sleep(1);
    }
    delete_saved_position();
    

    Pokud je off, je to jednoduché, pomocí fce set_time_limit() si v programu nastavíte dostatečnou hodnotu.
    Doporučuji to dělat opakovaně a měřit si čas a nastavovat to třeba na 30sec (či 120) pokud skript běží již 20sec (či 80).
    Ta funkce současně nuluje počitadlo, takže od nastavení máte tolik času kolik si nastavíte.
    Např:
    $maxruntime=20;
    $settimeto=30;
    $restartat = time() + $maxruntime;
    set_time_limit($settimeto);
    for ($x=0;$x < 1000;$x++)
    {
      if(time() > $restartat)
      { 
        $restartat = time() + $maxruntime;
        set_time_limit($settimeto);
      }
      //dělej něco
      sleep(1);
    }
    
    Dejte si pozor na možné časové prodlevy ze strany databáze, pokud máte možnost upravovat max_execution_time pomocí set_time_limit(), tak si nastavte dostatečnou rezervu. Nějaké große numero, také není dobré, něco se zauzlí a server se při opakovaných požadavcích zahltí.

    PS: vše jsem psal bez odzkoušení, takže případné chyby si opravte :)
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    14.11.2010 20:31 YYY | skóre: 29 | blog: martinek
    Rozbalit Rozbalit vše Re: PHP obejití timeoutů
    Doporucil bych prenastavit timeout funkci set_time_limit($secs), nebo nevymyslet harakiri s nejakym opakovanim requestu ze strany klienta, ale provest zpracovani dat doma na vlastnim stroji a nahrat do db az vysledek.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.