🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
6 messages
6 total messages Started by Krzysiek Thu, 16 Jul 2009 13:22
Przerwanie po okreslonym czasie
#51492
Author: Krzysiek
Date: Thu, 16 Jul 2009 13:22
34 lines
1461 bytes
Witam,

mam nastepującą sytuacje:

$command = "/usr/local/pgsql-8.2/bin/psql -h localhost -U efil smyk -tqf 
/cacti-scripts/skrypt.sql|";
 

open(PSQL,$command); 

$data=""; 

 

while(<PSQL>){ 

     chomp; 

     $data.=" ".$_; 

} 

print $data; 

close(PSQL);

Skrypcik pobiera dane z postgresa i drukuje je na ekran. Jednak 
chcialbym aby skrypt po 60 sekundach jesli nie dostanie danych poszedł 
dalej np. po close(PSQL). Czasem zdarza sie tak, ze zapytanie w bazie 
wykonuje sie dluzej niz 60 sekund, a ja potrzebuje zmiescic sie w czasie 
60s.

Czy jest mozliwe wywolanie interrupt. Pewnie na watkach sie da, ale czy 
mozna jakos prosciej ?
Re: Przerwanie po okreslonym czasie
#51518
Author: Krzysiek
Date: Thu, 16 Jul 2009 13:46
1 lines
934 bytes
Znalazlem eval + alarm.
Re: Przerwanie po okreslonym czasie
#51519
Author: Stachu 'Dozzie' K.
Date: Thu, 16 Jul 2009 16:29
17 lines
1320 bytes
On 16.07.2009, Krzysiek wrote:
>> Witam,
>>
>> mam nastepującą sytuacje:
>>
>> $command = "/usr/local/pgsql-8.2/bin/psql -h localhost -U efil smyk -tqf
               ^^^^^^^^^^^
>> /cacti-scripts/skrypt.sql|";
>>
> Znalazlem eval + alarm.

Ty nie chcesz eval+alarm. Ty chcesz po pierwsze modułu DBI i DBD::Pg,
a po drugie pakietu z PostgreSQL, bo już widzę że sobie radosny burdel
w systemie uprawiasz.

-- 
Stanislaw Klekot
Re: Przerwanie po okreslonym czasie
#51521
Author: hubert depesz lubaczewski
Date: Thu, 16 Jul 2009 20:35
21 lines
1462 bytes
On 2009-07-16, Krzysiek <krzysiez@o2.pl> wrote:
> $command = "/usr/local/pgsql-8.2/bin/psql -h localhost -U efil smyk -tqf 
> /cacti-scripts/skrypt.sql|";
> Czy jest mozliwe wywolanie interrupt. Pewnie na watkach sie da, ale czy 
> mozna jakos prosciej ?

pewnie.

na poczatek skrypty skrypt.sql dopisz:
set statement_timeout = 60000;
i to ci zapewni, że żadne z zapytań nie będzie trwało dłużej niż 60
sekund.

a jeśli do cacti używasz zapytań które trwają dłużej niż 5 sekund, to
znaczy, że coś robisz źle.

depesz

-- 
Linkedin: http://www.linkedin.com/in/depesz  /  blog: http://www.depesz.com/
jid/gtalk: depesz@depesz.com / aim:depeszhdl / skype:depesz_hdl / gg:6749007
Re: Przerwanie po okreslonym czasie
#51522
Author: Krzysiek
Date: Fri, 17 Jul 2009 09:16
28 lines
2085 bytes
hubert depesz lubaczewski wrote:
> On 2009-07-16, Krzysiek <krzysiez@o2.pl> wrote:
>> $command = "/usr/local/pgsql-8.2/bin/psql -h localhost -U efil smyk -tqf 
>> /cacti-scripts/skrypt.sql|";
>> Czy jest mozliwe wywolanie interrupt. Pewnie na watkach sie da, ale czy 
>> mozna jakos prosciej ?
> 
> pewnie.
> 
> na poczatek skrypty skrypt.sql dopisz:
> set statement_timeout = 60000;
> i to ci zapewni, że żadne z zapytań nie będzie trwało dłużej niż 60
> sekund.

Dzieki, tak tez zrobilem.

> a jeśli do cacti używasz zapytań które trwają dłużej niż 5 sekund, to
> znaczy, że coś robisz źle.

To jest specyficzna sytuacja, jeden z analitykow uzywa narzedzia, ktore 
zmienia usuwa i tworzy od nowa tabela, a co za tym idzie zmienia sie OID 
  tabelki. Wielokrotnie mialem taka sytuacje, ze baza rzucala errorem, 
ze takiej tabelki nie ma. Po 120s. To jeden przypadek, a drugi to taki, 
ze baza jest dosc duza i zczytanie rozmiarow wszystkich tabel troche trwa.
Prawdopodobnie jest to uzaleznione od obciazenia, czasem trwa 2-3s. a 
czasem ponad 60, dlatego chcialem zastosowac limity czasowe.

Pozdrawiam.
Re: Przerwanie po okreslonym czasie
#51520
Author: Krzysiek
Date: Fri, 17 Jul 2009 09:17
6 lines
1167 bytes
> bo już widzę że sobie radosny burdel

Dzieki, za celna uwage.
Juz posprzatalem :).

Pozdrawiam.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads