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 11:55 | IT novinky

    Společnost Perplexity AI působící v oblasti umělé inteligence (AI) podala nevyžádanou nabídku na převzetí webového prohlížeče Chrome internetové firmy Google za 34,5 miliardy dolarů (zhruba 723 miliard Kč). Informovala o tom včera agentura Reuters. Upozornila, že výše nabídky výrazně převyšuje hodnotu firmy Perplexity. Společnost Google se podle ní k nabídce zatím nevyjádřila.

    Ladislav Hagara | Komentářů: 1
    dnes 04:33 | Bezpečnostní upozornění

    Intel vydal 34 upozornění na bezpečnostní chyby ve svých produktech. Současně vydal verzi 20250812 mikrokódů pro své procesory řešící 6 bezpečnostních chyb.

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

    Byla vydána nová verze 1.25 programovacího jazyka Go (Wikipedie). Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 1
    včera 13:44 | Nová verze

    Byla vydána beta verze Linux Mintu 22.2 s kódovým jménem Zara. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze novou XApp aplikaci Fingwit pro autentizaci pomocí otisků prstů nebo vlastní fork knihovny libAdwaita s názvem libAdapta podporující grafická témata. Linux Mint 22.2 bude podporován do roku 2029.

    Ladislav Hagara | Komentářů: 0
    včera 13:00 | IT novinky

    Provozovatel internetové encyklopedie Wikipedie prohrál v Británii soudní spor týkající se některých částí nového zákona o on-line bezpečnosti. Soud ale varoval britského regulátora Ofcom i odpovědné ministerstvo před zaváděním přílišných omezení. Legislativa zpřísňuje požadavky na on-line platformy, ale zároveň čelí kritice za možné omezování svobody slova. Společnost Wikimedia Foundation, která je zodpovědná za fungování

    … více »
    Ladislav Hagara | Komentářů: 2
    včera 12:55 | Nová verze

    Byla vydána verze 2.0.0 nástroje pro synchronizaci dat mezi vícero počítači bez centrálního serveru Syncthing (Wikipedie). Přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 2
    včera 12:33 | IT novinky

    Americký prezident Donald Trump se v pondělí osobně setkal s generálním ředitelem firmy na výrobu čipů Intel Lip-Bu Tanem. Šéfa podniku označil za úspěšného, informují agentury. Ještě před týdnem ho přitom ostře kritizoval a požadoval jeho okamžitý odchod. Akcie Intelu v reakci na schůzku po oficiálním uzavření trhu zpevnily asi o tři procenta.

    Ladislav Hagara | Komentářů: 12
    11.8. 04:55 | Nová verze

    Byl vydán Debian GNU/Hurd 2025. Jedná se o port Debianu s jádrem Hurd místo obvyklého Linuxu.

    Ladislav Hagara | Komentářů: 6
    11.8. 02:44 | Komunita

    V sobotu 9. srpna uplynulo přesně 20 let od oznámení projektu openSUSE na konferenci LinuxWorld v San Franciscu. Pokuď máte archivní nebo nějakým způsobem zajímavé fotky s openSUSE, můžete se o ně s námi podělit.

    lkocman | Komentářů: 6
    9.8. 21:11 | Nová verze

    Byl vydán Debian 13 s kódovým názvem Trixie. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 8
    Kolik tabů máte standardně otevřeno ve web prohlížeči?
     (49%)
     (20%)
     (4%)
     (5%)
     (3%)
     (1%)
     (1%)
     (17%)
    Celkem 359 hlasů
     Komentářů: 23, poslední 4.8. 13:01
    Rozcestník

    Dotaz: Cron - nespouštět novou instanci

    16.9.2011 09:16 Standa N.
    Cron - nespouštět novou instanci
    Přečteno: 289×

    Pouštím v CRONu každé 2 minuty úlohu, která zpracovává poměrně složitý SQL job nad Oracle DB.

    */2 06-18 * * 1-5 su - oracle -c "sqlplus @/usr/local/bin/job.sql"

    Job běží cca 10-20 sekund a čas si loguji do DB.
    Bohužel při extrémním zatížení DB (které neovlivním) běží skript i 5 minut.

    OTÁZKA:
    Mohu nějak zařídit, aby se úloha v cronu nespustila znovu, dokud nedoběhla její předchozí instance?
    Něco podobného jako je ve WIN-plánovači úloh.
    Jediné co mne napadá, že si budu ukládat a hlídat "běží/neběží" až v DB.

    Díky, Standa


    Řešení dotazu:


    Odpovědi

    16.9.2011 10:07 David Karban | skóre: 12 | blog: DK
    Rozbalit Rozbalit vše Re: Cron - nespouštět novou instanci
    Zdravím,

    nestačí na toto jen obyčejný zámek realizovaný souborem?

    Na začátku skriptu si otestujete, jestli existuje zámek, pokud ano tak skript ještě běží. Pokud ne tak ho vytvoříte a na konci cronu jej smažete. Má to ale háček v tom, že když skript spadne, tak neodstraní zámek. To se dá vyřešit třeba tak, že v zámku máte uloženo PID procesu co běží a na začátku provedete i test zda skutečně běží.

    Stejně tak se dá zámek udělat přímo v databázi.
    16.9.2011 10:36 Standa N.
    Rozbalit Rozbalit vše Re: Cron - nespouštět novou instanci

    Díky,
    právě - jediné čeho jsem se bál je situace, kdy by skript padnul, nebo by ho někdo killnul.
    Zkusím to nějak realizovat, Díky.

    16.9.2011 12:21 l4m4
    Rozbalit Rozbalit vše Re: Cron - nespouštět novou instanci
    Pokud skript může padat, nedávej zaykání do něj, ale do nějakého wrapperu (který navíc pomocí trap po sobě může vyčistit i v případě ukončení signálem - kromě KILL samozřejmě).
    16.9.2011 11:16 jekub
    Rozbalit Rozbalit vše Re: Cron - nespouštět novou instanci
    Proč si úlohu nenaplánujete přímo v databázi (dbms_job, dbms_scheduler)?
    16.9.2011 12:28 Standa N.
    Rozbalit Rozbalit vše Re: Cron - nespouštět novou instanci

    Aha, taková možnost mne ani nenapadla - SQL umím obstojně, ale nejsem ORACLE specialista.

    Je tam někde možnost spustit max. jednu instanci?
    Syntaxi si dohledám, díky.

    16.9.2011 13:42 jekub
    Rozbalit Rozbalit vše Re: Cron - nespouštět novou instanci
    pokud je interval spouštění kratší než doba běhu, tak...
    drop table t;
    create table t(sid number,dt date,descr varchar2(10));
    
    create or replace procedure p is
    begin
    	insert into t values(sys_context('userenv','sid'),sysdate,'start');
    	dbms_lock.sleep(90);
    	insert into t values(sys_context('userenv','sid'),sysdate,'stop');
    end;	
    /
    
    var job number
    exec dbms_job.submit(:job,'begin p;end;',sysdate,'sysdate+1/24/60')
    commit;
    
    ...
    
    select sid,to_char(dt,'DD.MM.YYYY HH24:MI:SS'),descr from t order by dt
    
    157	16.09.2011 13:32:32	start
    157	16.09.2011 13:34:02	stop
    157	16.09.2011 13:34:02	start
    157	16.09.2011 13:35:32	stop
    157	16.09.2011 13:35:32	start
    157	16.09.2011 13:37:02	stop
    
    exec dbms_job.remove(:job)
    drop procedure p;
    drop table t;
    
    
    16.9.2011 14:20 drunkezz | skóre: 34 | blog: kadeco
    Rozbalit Rozbalit vše Re: Cron - nespouštět novou instanci
    alebo priamo do skriptu spravit podmienku

    cize zistit si PID beziaceho job.sql..a vzdy ked sa uloha z kronu spusti tak najprv skontroluje ci bezi alebo nebezi predchadzajuca uloha....ja to robim tak.. D.
    17.9.2011 11:57 Jooky (inactive) | skóre: 39 | blog: Jooky | Bratislava
    Rozbalit Rozbalit vše Re: Cron - nespouštět novou instanci
    Ja na podobne pripady pouzivam vyspelejsi "fcron". Jeden s viacerych parametrov, ktore ma je moznost "serial". Job oznaceny ako serial, moze bezat len raz, aj ked podla planovania by sa mal pustit znova ... no ak je moznost to pustat rovno v DB, tak ja by som pouzil tu moznost.

    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.