我想用線程使用detach方法來運行perl腳本。應用程序 應該永久運行,24/7。我正在嘗試使用this example。安全Perl線程
但是,當我運行這個例子在一個較長的時間段內,事實證明,有一個不斷 增加內存。我怎樣才能避免這種情況?如何在不增加內存的情況下使用threads->detach
方法?
我想用線程使用detach方法來運行perl腳本。應用程序 應該永久運行,24/7。我正在嘗試使用this example。安全Perl線程
但是,當我運行這個例子在一個較長的時間段內,事實證明,有一個不斷 增加內存。我怎樣才能避免這種情況?如何在不增加內存的情況下使用threads->detach
方法?
另一種方法可能是使用Parallel::ForkManager模塊(一個簡單的並行處理分叉管理器)。我已經使用它並且完成了我的工作(長時間運行的進程沒有內存泄漏)。
你可以發佈你的代碼或你想分離的東西嗎?
你不需要使用pool.pl來運行一個獨立的程序。
,你可以做最簡單的是(在UNIX:yourcommand &
)
use threads;
use threads::shared; # if required,
###loop main prog
my $detach_thread = threads->create(
sub {
# DO YOUR STUFF here
return;
}
);
$detach_thread->detach();
考慮在後臺正在運行的其他替代方案。
Perl線程沒有很好的聲譽......也許是時候爲你的應用程序找到另一個解決方案了,你能解釋一下嗎? – 2013-02-25 20:26:31
沒什麼特別的,一個應用程序運行幾個並行任務,但同時沒有雙重執行。它應該是一個老闆/員工的概念,因爲我想控制過程。 – Joe 2013-02-25 20:33:26