🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.python
1 messages
1 total messages Started by marek Mon, 05 Mar 2012 17:58
Jak mogę ustawić timeout na wykonywanie kodu R za pośrednictwem rpy2?
#28411
Author: marek
Date: Mon, 05 Mar 2012 17:58
23 lines
2349 bytes
Witam,

Chciałbym zabić wykonywanie kodu R odpalanego za pośrednictwem
robjects.r. Przetestowałem, że pewien kod R wykonuje się przez
maksymalnie 5 sekund. Jeśli czas ten przekroczy 10 sekund chciałbym
zabić proces wykonywania kodu R oraz rzucić wyjątkiem z poziomu
pythona. Kod R mam w stringu, odpalam tak:

import rpy2.robjects as robjects
robjects.r('tu jest kod, którego wykonanie trwa 5 sek - chcę zabić
proces, jeśli czas wykonania przekroczy 10')

Obsługa timeoutu za pomocą signal.alarm nie działa. Kiedy python
uruchamia środowisko R przestaje aktywnie kontrolować ilość sekund
swojego wykonania, dopiero po wykonaniu całego kodu R następuje
odświeżenie informacji o stanie. Czyli jak ustawię signal.alarm(5) a
kod R będzie wykonywał się dłużej niż 5 sekund - nie nastąpi
przerwanie jego działania. Przerwanie nastąpi dopiero po wykonaniu R.

Chciałbym przy tym ominąć implementację limitu czasowego na wykonanie
kodu w samym R, ponieważ mam tam sporo analityki statystycznej i nie
chciałbym jej dodatkowo zaciemniać. Oczywiście jeśli to jedyne
rozwiązanie to trudno, ale sądzę, że nie jest to tak wyszukany problem.
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