I think #exit is what I was looking for but all your feedback got me 
questioning whether I am using backgroundrb the right way, or the most 
optimized way.  Please advise.

I was thinking of having my Rails app creating a new worker 
(Middleman.NEW_worker ...) EVERYTIME a time-consuming task is requested.  As a 
result, I could have thousands of workers running at the same time.  In my 
case, my Rails don't need to monitor the worker status, so I can just use #exit 
when a worker is done with its task.

Questions:

1. Should I create a new worker everytime like that?  Or just having 1 worker, 
and call async_some_method() when I need to do some long running task?  Is this 
where thread_pool come into place?

2. If I should create a new worker everytime, is there any reason why I 
shouldn't put the time-consuming task inside the worker's create() method?

3. At the Linux prompt, is there a way I can monitor how many workers are 
currently active?

Thank you everyone for your help.

Tuong

-----Original Message-----
From: hemant [mailto:[email protected]] 
Sent: Friday, February 27, 2009 12:18 AM
To: Raghu Srinivasan
Cc: Le, Tuong; [email protected]
Subject: Re: [Backgroundrb-devel] When does a worker terminate

On Fri, Feb 27, 2009 at 12:18 PM, Raghu Srinivasan
<[email protected]> wrote:
> Hemant  - I thought that script/background start starts all workers
> and script/background stop stops all workers.
> How does one explicitly close/exit a  particular worker from within Rails?
>

You can call #delete on worker. For example:

MiddleMan.worker("worker_name",<optional_worker_key>).delete

Or you can call #exit from within the worker.
_______________________________________________
Backgroundrb-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/backgroundrb-devel

Reply via email to