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í
×
    včera 22:44 | Nová verze

    Programovací jazyk Python byl vydán v nové major verzi 3.15.0. Podrobný přehled novinek v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 2
    včera 22:33 | Zajímavý projekt

    BIGWORDS.PAGE je open-source webová aplikace, která po otevření odkazu v prohlížeči vykreslí přes celou obrazovku jednoduché informační sdělení. Zpráva i její nastavení jsou uložené v části URL za znakem #, například odkaz https://bigwords.page/#abclinuxu zobrazí jako velký bílý nápis 'abclinuxu' na černém pozadí. Obsah odkazu lze upravovat i vestavěným editorem, ten umožňuje nastavovat formátování a vizuální efekty textu, časovače, QR kódy a obrázky. Zdrojový kód je dostupný pod licencí MIT na GitHubu.

    ❗Červivý Hřib krade❗ | Komentářů: 7
    včera 11:55 | Upozornění

    V neděli 11. října proběhne rotace klíče kořenové zóny. Podruhé v historii. Ondřej Filip na blogu CZ.NIC: "Pokud je pro Vás DNS protokol spíše výzva, ale přesto spravujete nějakou síť či DNS resolver, zkuste si jednoduchý test, který připravila firma Cloudflare na této adrese. Obzvláště zbystřit byste měli, pokud uvidíte nějaká červená políčka."

    Ladislav Hagara | Komentářů: 13
    včera 09:55 | IT novinky

    Vláda Spojených států se rozhodla vyřadit americkou softwarovou společnost Microsoft a několik dalších velkých technologických podniků z programu, který umožňuje kvalifikovaným zahraničním pracovníkům získat povolení k trvalému pobytu. Oznámila to včera administrativa amerického prezidenta Donalda Trumpa. Opatření zdůvodnila rozsáhlým zneužíváním programu, který je dlouhodobě terčem kritiky ze strany Trumpových příznivců, neboť prý znevýhodňuje americké pracovníky.

    Ladislav Hagara | Komentářů: 11
    včera 09:44 | IT novinky

    Datové centrum největší ruské technologické společnosti Jandex v Rjazaňské oblasti se stalo cílem dronového útoku a zastavilo provoz. Jandexu se někdy přezdívá „ruský Google“. Provozuje nejoblíbenější internetový vyhledávač v Rusku nebo aplikace pro objednávky jídla a taxi. Využívají jej desítky milionů lidí v rusky mluvících zemích.

    Ladislav Hagara | Komentářů: 11
    včera 09:33 | Nová verze

    Francouzská společnost Mistral AI představila Mistral Large 4 (interně přezdívaný 'le Chonk', volně přeloženo 'pořádný macek'), 'open-weight multimodální hybridní instruct-and-reasoning model s architekturou granulárního MoE, nativně podporující více jak 160 jazyků'. Model má přes jeden bilión parametrů, z nichž při práci využívá 49 miliard, kontextové okno o délce milion tokenů a obrazový enkodér o 1,6 miliardách parametrů.

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 2
    včera 03:22 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.20. Díky 227 přispěvatelům.

    Ladislav Hagara | Komentářů: 0
    včera 03:11 | Komunita

    Simon Long oznámil Raspberry Pi Desktop pro PC a Mac s Intelem postavený na aktualizovaném Debianu 13 Trixie. S klientem Raspberry Pi Connect pro vzdálenou správu. Ke stažení je vedle Raspberry Pi OS pro Raspberry Pi.

    Ladislav Hagara | Komentářů: 1
    8.10. 21:33 | Zajímavý projekt

    ESP32-C3 adblock přemění lacinou vývojovou desku ESP32‑C3 na samostatný DNS blokovač nejenom reklamních domén, minimalistickou alternativu k populárnímu Pi-hole. ESP32-C3 adblock místo objemných názvů domén ukládá jejich 40-bitové FNV-1a hashe do flash paměti, které pak binárně prohledává, kontrola jedné domény trvá přibližně 10 milisekund. Blocklist pojme až 537 tisíc domén a lze jej spravovat přes webové rozhraní. Projekt zatím

    … více »
    ❗Červivý Hřib krade❗ | Komentářů: 0
    8.10. 21:00 | Zajímavý software

    ArtCraft je sada open source aplikací pro práci s obrázky a videi "inspirovaných" aplikacemi od Adobe. Napsaných v Rustu. Pro MacOS, Windows i Linux. Běží také ve webovém prohlížeči. Aktuálně se jedná o 7 aplikací: PhotoCraft (Photoshop), VectorCraft (Illustrator), FilmCraft (Premiere Pro), LightCraft (Lightroom), PdfCraft (Acrobat), EffectCraft (After Effects) a DesignCraft (InDesign). Zdrojové kódy jsou k dispozici na GitHubu.

    Ladislav Hagara | Komentářů: 10
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (21%)
     (29%)
     (8%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2824 hlasů
     Komentářů: 31, poslední 13.8. 00:27
    Rozcestník

    Dotaz: Upload a zpracování velkého souboru - PHP - PostgreSQL

    23.3.2010 15:03 JFK
    Upload a zpracování velkého souboru - PHP - PostgreSQL
    Přečteno: 1521×
    Ahoj, mam velkej dump z jine DB, kterej potrebuju nacpat do PostgreSQL - ten dump ma asi 100MB a kdyz to uploadnu a parsruju PHPkem a nasledne rvu do PostgreSQL, tak to trva fakt dlouho (optimalizace-ano mam tam vicenasobne vkladani radku a transakce) az do doby, kdy nejspis dojde k timeoutu prohlizece a zpracovani se zastavi, prohlizec skonci. Predpokladam, ze potrebuju nakym zpusobem ten import na chvilku prerusit, aby prohlizec dostal naky data, tim se mu obnovil cas k timeoutu a dal mohl pokracovat, ale nevim jak ... :-) prosim o radu zkusenejsi ... dekuji.

    Odpovědi

    23.3.2010 16:43 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: Upload a zpracování velkého souboru - PHP - PostgreSQL
    Můžeš vysvětlit, proč to tam cpeš prohlížečem přes PHP? Pro přístup k databázi jsou programy (jsou dodávané s PostgreSQL), které nejsou omezeny nějakými time nebo memory limity. Nebo aspoň ten PHP skript spustit jako každý jiný normální skript (tzn. ne přes prohlížeč, ale v terminálu nebo přes SSH).
    24.3.2010 08:16 JFK
    Rozbalit Rozbalit vše Re: Upload a zpracování velkého souboru - PHP - PostgreSQL
    Protože se jedna o system do ktereho by to melo zvladat importovat vic lidi, v podstate kde kdo z rozsahlejsi site, tzn. nemuzu si dovolit davat lidem pristup primo k DB a navic to chtit po nakych lamach, chtel jsem to vyresit cely pres www hozhrani-jde o co nejvetsi jednoduchost. Lama da vybrat soubor k importu a udela jeden cvak a ono se to udela samo. Navic by to melo byt schopny bezet na hostingu kde si asi moc dovolovat nebudu moct, takze jsem to chtel spachat cely v PHPku pres prohlizec. Tohle prece nejak musi jit ... jak to dela treba rapidshare pri nahravani velkych souboru pri pomalych prenosovych rychlostech? Ten timeout prece taky musi nastat, kdybych tam tahal 1GB po modemu, tak to bude trvat 1/2 roku a prohlizec to prestane taky bavit. Chce to udelat nak per-partes.

    Mozna by to taky bylo mozny po radcich nacpat do docasne tabulky v PostgreSQL a pri vlozeni posledniho radku ze souboru do DB zavolat nakou proceduru v PostgreSQL, ktera by to preparsrovala a naimportovala do DB, tim by se neprerusilo zpracovani, protoze by to bezelo uz mimo prohlizec ... aspon myslim, nezkousel jsem to, ale PostgreSQL neni na praci s retezci zas tak dobre vybavene jako PHP-ko.
    24.3.2010 12:32 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Upload a zpracování velkého souboru - PHP - PostgreSQL
    Taková situace lze řešit několika způsoby, např.:
    • Připravit na serveru ID transakce, odeslat soubor s cílem do neviditelného frame současně s daným ID pro identifikaci na straně serveru.
      Ve stránce si ajaxem pinkat na server s dotaze na stav transakce dle ID, který kontroluje stav transakce/akce dle ID a vypisuje (Ještě to nedošlo,Ještě to nedošlo, Zpracovávám atd.).
      To že v neviditelném iframe vyšumí timeout je putna, pokud nevyšumí timeout scriptu.
      Takže potřebujete dva PHP scripty uploadovací-zpracovávací a 2. zjišťovací. Stav transakce třeba ukládat do DB.
    • Pokud soubor v PHP zpracováváte, tak je nejsnazší vracet něco zpět v každé iteraci (či n-té iteraci) třeba tečku a nezapomenout na příkaz flush().
      U tohoto záleží ještě na bufferování apache a někdy mohou pozlobit proxy-ny v cestě. Tady Vám stačí jen jeden script, a pokud se to dobře udělá, tak v kontrolovaném prostředí (intranet), to poslouží dobře.
    • Stáhnout soubor klasicky ve stávajícím „frame“ a příkaz insertu do DB třeba pustěte v jiném procesu třeba externě pře nohup, tím padem se stránka načte v momentě uploadu.
      Pak je třeba zjišťovat periodicky stav (parsovat vystupni soubor nohup-u, který musí být jedinečný).
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    25.3.2010 08:13 JFK
    Rozbalit Rozbalit vše Re: Upload a zpracování velkého souboru - PHP - PostgreSQL
    Myslim, ze metoda 2 a 3 jsou schudne (tj. zvladnu a diky za nakopnuti), metoda 1 je asi nejlepsi, ale nevim jak zjistit ID transakce ... :-). Nevidel jste nahodou nekde poceste na netu nakej priklad ... strejdu googla jsem zdimal, ale asi hledam spatna klicova slova, bo o tom vim prd. Diky za koment.
    25.3.2010 09:23 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Upload a zpracování velkého souboru - PHP - PostgreSQL
    Malá drobnost úvodem, vyšel jsem z předpokladu, že doba běhu PHP skriptu není limitována (nebo s dostatečnou rezervou) a celý problém je jen „timeout“ na straně klienta a nejdná se o ukončení běhu ze strany serveru viz set_time_limit().

    Co se týče prvního řešení, termín „ID transakce“ jsem myslel obecně a možná slúvko transakce je matoucí (nemyslel jsem SQL transakci), toto ID může být uloženo třeba v DB.
    Myšlenka je následující:
    Pozn. píši to z patra a ošetřování vstupů není obsaženo, sql jsou jen naznačena, php kód také, javascript zde není :(.
    1. Při otvírání/generování stránky, která umožňuje zmiňovaný upload, vytvořit jedinečné ID (uložit záznam v DB). Tento identifikátor dát do skrytého pole formuláře pro upload souboru.
      $myuid = dechex(time()) . dechex(rand());
      sql: "INSERT tuids (uid,stav) VALUES('$myuid',-1)"
      ..
      .. <form>
      ..
      print '<input type="hidden" name="hupld_id" value="'.$myuid.'" />';
      ..
      ...</form>
      
      • Stránka zpracovávající upload, zapisuje k tomuto ID informaci o stavu zpracování souboru.
        .. //stahnul jsem to, start zpracovávání 
        $uid = mysql_escape_string($_POST['hupld_id']);
        
        sql: "UPDATE tuids SET stav=0 WHERE uid='$uid'"
        .. //fčul už víte, že se soubor stáhnul a začíná se zpracovávat
        ..
        .. //zjistit si třeba počet iterací (nebo co potřebujete),
        .. // pokud chcete udělat progressbar přepočíst na % a v daných iteracích měnit.
        sql: "UPDATE tuids SET stav=stav+1 WHERE uid='$uid'"
        
      • Stránka informační, na kterou si pinkáte (třeba po 30sec) ajaxem (HttpRequest-em) vrací stav.
        na něco jako http://server/getinfo.php?hupld_id=74f4224a118
        $uid = mysql_escape_string($_POST['hupld_id']);
        ..
        sql: "SELECT state FROM tuids WHERE uid='$uid'"
        ..
        print $vyvetchovany_result['state']; //:)
        exit;
        
    Provedené transakce (záznamy o uID) se dají promazávat, například k nim uložit časové razítko,a před vytvořením každé nové smazat záznamy starší 48 hodin něco jako
    DELETE FROM tuids WHERE DATE_ADD(vytvoreno, INTERVAL 48 hour) < NOW();

    Takovéto řešení má dvě základní výhody:
    • Uživatel má plný komfort a vidí stav zpracování, případně je možné i reportovat warningy/errory v průběhu (stránka informační vrací více údajů).
    • Ze strany správce jsou záznamy kdy se co dělo, a vhodným rozšířením (a nepromazáváním) tabulky, případně tabulek, máte statistiku doby zpracovávané, informace o problémech apod.
    Neplácám to jen z vody, podobný systém používám na import a parsování až 2Gb logů, které se očešou a parsují do DB (statistika přístupu k internetu uživatelů a PC), s tím rozdílem, že většinou se jedná o proces na pozadí bez interakce uživatele, ale správce má možnost tento upload a zpracování provést i „interaktivně - online“. Tyto importy trvají i 30 minut a je jich někdy i několik, a díky automatickým importům se v DB uchovávají údaje o proběhlých importech, času, varování apod. - a samozřejmě se nemažou.
    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    25.3.2010 12:20 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
    Rozbalit Rozbalit vše Re: Upload a zpracování velkého souboru - PHP - PostgreSQL
    Drobná opravička namající vliv na myšlénku:

    $myuid = dechex(time()) . dechex(rand() * 16777216);

    (Lze samozřejmě použít MD5 SHA1 a pod.)

    To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
    25.3.2010 13:31 JFK
    Rozbalit Rozbalit vše Re: Upload a zpracování velkého souboru - PHP - PostgreSQL
    Co rici nez WOW :-), diky za temer napsanej kod ... :-). Myslenka zajimava, s AJAXem jeste neumim, ale to nak pujde. Takze diky jeste jednou, jdu na to ... .
    Tarmaq avatar 23.3.2010 17:17 Tarmaq | skóre: 39
    Rozbalit Rozbalit vše Re: Upload a zpracování velkého souboru - PHP - PostgreSQL
    volil bych cestu:
    1. $ scp sql_dump stroj
    2. $ ssh stroj
    3. $ psql -f sql_dump databaze
    Don't panic!
    AraxoN avatar 24.3.2010 13:03 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: Upload a zpracování velkého souboru - PHP - PostgreSQL
    Dal by som na začiatok skriptu
    error_reporting(E_ALL ^ E_NOTICE);
    echo "zaciatok PHP\n";
    a počkal si čo to vypíše...

    Btw. upload v PHP funguje štandardne tak, že najprv sa odošle celý súbor a až keď je celý na serveri, tak až potom sa začne vykonávať PHP skript. Tzn. je treba rozlíšiť, či to zdochlo na uploade, alebo až na následnom spracovaní dát v PHP. Keď nám dáš vedieť kde to skončilo, potom Ti možno poradíme konkrétnejšie.

    Založit nové vlákno • Nahoru

    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.