Thread View: pl.comp.lang.perl
6 messages
6 total messages
Started by Krzysiek
Thu, 16 Jul 2009 13:22
Przerwanie po okreslonym czasie
Author: Krzysiek
Date: Thu, 16 Jul 2009 13:22
Date: Thu, 16 Jul 2009 13:22
34 lines
1461 bytes
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
Author: Krzysiek
Date: Thu, 16 Jul 2009 13:46
Date: Thu, 16 Jul 2009 13:46
1 lines
934 bytes
934 bytes
Znalazlem eval + alarm.
Re: Przerwanie po okreslonym czasie
Author: Stachu 'Dozzie' K.
Date: Thu, 16 Jul 2009 16:29
Date: Thu, 16 Jul 2009 16:29
17 lines
1320 bytes
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
Author: hubert depesz lubaczewski
Date: Thu, 16 Jul 2009 20:35
Date: Thu, 16 Jul 2009 20:35
21 lines
1462 bytes
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
Author: Krzysiek
Date: Fri, 17 Jul 2009 09:16
Date: Fri, 17 Jul 2009 09:16
28 lines
2085 bytes
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
Author: Krzysiek
Date: Fri, 17 Jul 2009 09:17
Date: Fri, 17 Jul 2009 09:17
6 lines
1167 bytes
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