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 06:22 | Zajímavý software

    NVIDIA vydala nativního klienta své cloudové herní služby GeForce NOW pro Linux. Zatím v beta verzi.

    Ladislav Hagara | Komentářů: 0
    dnes 04:33 | Zajímavý projekt

    Open Gaming Collective (OGC) si klade za cíl sdružit všechny klíčové projekty v oblasti linuxového hraní počítačových her. Zakládajícími členy jsou Universal Blue a Bazzite, ASUS Linux, ShadowBlip, PikaOS a Fyra Labs. Strategickými partnery a klíčovými přispěvateli ChimeraOS, Nobara, Playtron a další. Cílem je centralizovat úsilí, takže namísto toho, aby každá distribuce udržovala samostatné opravy systému a podporu hardwaru na

    … více »
    NUKE GAZA! 🎆 | Komentářů: 0
    dnes 04:11 | Bezpečnostní upozornění

    V kryptografické knihovně OpenSSL bylo nalezeno 12 zranitelností. Opraveny jsou v upstream verzích OpenSSL 3.6.1, 3.5.5, 3.4.4, 3.3.6 a 3.0.19. Zranitelnosti objevila společnost AISLE pomocí svého autonomního analyzátoru.

    Ladislav Hagara | Komentářů: 0
    včera 20:11 | Zajímavý software

    Desktopové prostředí Xfce bude mít vlastní kompozitor pro Wayland s názvem xfwl4. V programovacím jazyce Rust s využitím stavebních bloků z projektu Smithay jej napíše Brian Tarricone. Úprava stávajícího xfwm4 tak, aby paralelně podporoval X11 i Wayland, se ukázala jako špatná cesta.

    Ladislav Hagara | Komentářů: 2
    včera 19:11 | Komunita

    Desktopové prostředí KDE Plasma 6.8 poběží už pouze nad Waylandem. Vývojáři, kteří s rozhodnutím nesouhlasí, vytvořili fork KDE Plasma s názvem SonicDE (Sonic Desktop Environment) s cílem zachovat a vylepšovat podporu X11.

    Ladislav Hagara | Komentářů: 4
    včera 12:22 | Nová verze

    Byla vydána nová stabilní verze 7.8 dnes již jedenáctiletého webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 144. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 6
    včera 10:33 | Nová verze

    GNU gettext (Wikipedie), tj. sada nástrojů pro psaní vícejazyčných programů, dospěl do verze 1.0. Po více než 30 letech vývoje. Přehled novinek v souboru NEWS.

    Ladislav Hagara | Komentářů: 1
    včera 05:11 | IT novinky

    Chris Kühl (CEO), Christian Brauner (CTO) a Lennart Poettering (Chief Engineer) představili svou společnost Amutable. Má přinést determinismus a ověřitelnou integritu do linuxových systémů.

    Ladislav Hagara | Komentářů: 12
    28.1. 20:11 | Nová verze

    Byla vydána (𝕏) nová verze 26.1 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 26.1 je Witty Woodpecker. Přehled novinek v příspěvku na fóru.

    Ladislav Hagara | Komentářů: 2
    28.1. 15:11 | Zajímavý projekt

    Deník TO spustil vlastní zpravodajský webový portál ToHledej.CZ s internetovým vyhledávačem a bezplatnou e-mailovou schránkou. Dle svého tvrzení nabízí 'Zprávy, komentáře, analýzy bez cenzury' a 'Mail bez šmírování a Velkého bratra'. Rozložením a vizuálním stylem se stránky nápadně podobají portálu Seznam.cz a nejspíše je cílem být jeho alternativou. Z podmínek platformy vyplývá, že portál využívá nespecifikovaný internetový vyhledávač třetí strany.

    NUKE GAZA! 🎆 | Komentářů: 28
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (6%)
     (0%)
     (10%)
     (24%)
     (3%)
     (5%)
     (2%)
     (12%)
     (32%)
    Celkem 676 hlasů
     Komentářů: 22, poslední včera 23:06
    Rozcestník

    Dotaz: PHP obejití timeoutů

    14.11.2010 03:31 /lKA0/
    PHP obejití timeoutů
    Přečteno: 339×
    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.