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 19:44 | Nová verze

    Byla vydána verze 9.1 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a informačním videu.

    Ladislav Hagara | Komentářů: 0
    dnes 17:44 | IT novinky

    Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem zůstává El Capitan od HPE (Cray) s výkonem 1,809 exaFLOPS. Druhý Frontier má výkon 1,353 exaFLOPS. Třetí Aurora má výkon 1,012 exaFLOPS. Nejvýkonnější superpočítač v Evropě JUPITER Booster s výkonem 1,000 exaFLOPS je na čtvrtém místě. Nejvýkonnější český superpočítač C24 klesl na 192. místo. Karolina, GPU partition klesla na 224. místo a Karolina, CPU partition na 450. místo. Další přehledy a statistiky na stránkách projektu.

    Ladislav Hagara | Komentářů: 0
    dnes 17:22 | IT novinky

    Microsoft představil Azure Cobalt 200, tj. svůj vlastní SoC (System-on-Chip) postavený na ARM a optimalizovaný pro cloud.

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

    Co způsobilo včerejší nejhorší výpadek Cloudflare od roku 2019? Nebyl to kybernetický útok. Vše začalo změnou oprávnění v jednom z databázových systémů a pokračovalo vygenerováním problém způsobujícího konfiguračního souboru a jeho distribucí na všechny počítače Cloudflare. Podrobně v příspěvku na blogu Cloudflare.

    Ladislav Hagara | Komentářů: 5
    včera 23:44 | Nová verze

    Byla vydána (Mastodon, 𝕏) první RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.

    Ladislav Hagara | Komentářů: 1
    včera 23:22 | Komunita

    Eugen Rochko, zakladatel Mastodonu, tj. sociální sítě, která není na prodej, oznámil, že po téměř 10 letech odstupuje z pozice CEO a převádí vlastnictví ochranné známky a dalších aktiv na neziskovou organizaci Mastodon.

    Ladislav Hagara | Komentářů: 0
    včera 19:44 | Nová verze

    Byla vydána nová major verze 5.0 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v obsáhlých poznámkách k vydání. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 14:00 | Upozornění

    Cloudflare, tj. společnost poskytující "cloudové služby, které zajišťují bezpečnost, výkon a spolehlivost internetových aplikací", má výpadek.

    Ladislav Hagara | Komentářů: 10
    včera 04:22 | Pozvánky

    Letos se uskuteční již 11. ročník soutěže v programování Kasiopea. Tato soutěž, (primárně) pro středoškoláky, nabízí skvělou příležitost procvičit logické myšlení a dozvědět se něco nového ze světa algoritmů – a to nejen pro zkušené programátory, ale i pro úplné začátečníky. Domácí kolo proběhne online od 22. 11. do 7. 12. 2025 a skládá se z 9 zajímavých úloh různé obtížnosti. Na výběru programovacího jazyka přitom nezáleží – úlohy jsou

    … více »
    SoutezKasiopea | Komentářů: 1
    včera 04:11 | Nová verze

    Byla vydána nová verze 2.52.0 distribuovaného systému správy verzí Git. Přispělo 94 vývojářů, z toho 33 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (46%)
     (19%)
     (18%)
     (23%)
     (15%)
     (23%)
     (15%)
     (17%)
    Celkem 369 hlasů
     Komentářů: 16, poslední 12.11. 18:21
    Rozcestník

    Dotaz: PHP obejití timeoutů

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