# Backgroundrb

**URL:** <https://www.ruby-forum.com/t/backgroundrb/132851>\
**Category:** Rails\
**Created:** [March 25, 2008, 10:11am UTC](https://www.ruby-forum.com/t/backgroundrb/132851 "2008-03-25T10:11:18Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![sineserz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ad7895/32.png) [@sineserz](https://www.ruby-forum.com/u/sineserz)\
**Post date:** [March 25, 2008, 10:11am UTC](https://www.ruby-forum.com/t/backgroundrb/132851/1 "2008-03-25T10:11:18Z")

</div>

hi,

i want to upload and convert video using backgroundrb.

In my case everything is fine, but i dont understand why my controller  
is waiting for worker to be done?

if i use this method  
success = system("#{FFMPEG} -i #{video\_file} -s 320x240 -ar 22050  
{video\_file}.flv")  
my controller is waiting for worker to be done.

but if i use this method  
success = IO.popen(“ffmpeg -i #{video\_file} -ab 32k -ar 22050 -s 320x240  
#{video\_file}.flv”)

controller dont waiting for worker.

But then i dont have any feedback about converting status.

Can someone explain me what im doing wrong or how can i do best ?

thank you

sergej

---

<div class="post-metadata">

**Author:** ![sineserz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ad7895/32.png) [@sineserz](https://www.ruby-forum.com/u/sineserz)\
**Post date:** [March 25, 2008, 10:28am UTC](https://www.ruby-forum.com/t/backgroundrb/132851/2 "2008-03-25T10:28:00Z")

</div>

seems my controller is waiting worker to be done, whatever action it  
does.

my controller look like this:

session[:job\_key] = MiddleMan.new\_worker(:worker =\>  
:upload\_handler\_worker, :job\_key =\> @multimedia\_ad.id.to\_s)

MiddleMan.send\_request(:worker =\> :upload\_handler\_worker, :worker\_method  
=\> :upload\_video, :data =\> @multimedia\_ad.id, :job\_key =\>  
session[:job\_key])

what am i doing wrong?

sine serz wrote:

> hi,
> 
> i want to upload and convert video using backgroundrb.
> 
> In my case everything is fine, but i dont understand why my controller  
> is waiting for worker to be done?
> 
> if i use this method  
> success = system("#{FFMPEG} -i #{video\_file} -s 320x240 -ar 22050  
> {video\_file}.flv")  
> my controller is waiting for worker to be done.
> 
> but if i use this method  
> success = IO.popen(“ffmpeg -i #{video\_file} -ab 32k -ar 22050 -s 320x240  
> #{video\_file}.flv”)
> 
> controller dont waiting for worker.
> 
> But then i dont have any feedback about converting status.
> 
> Can someone explain me what im doing wrong or how can i do best ?
> 
> thank you
> 
> sergej

---

<div class="post-metadata">

**Author:** ![sineserz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ad7895/32.png) [@sineserz](https://www.ruby-forum.com/u/sineserz)\
**Post date:** [March 25, 2008, 1:40pm UTC](https://www.ruby-forum.com/t/backgroundrb/132851/3 "2008-03-25T13:40:06Z")

</div>

Probably not the source of your problem but I can tell you are not using  
the newest version of backgroundrb by your syntax. The new version goes  
from this

MiddleMan.send\_request(:worker =\> :upload\_handler\_worker, :worker\_method  
=\> :upload\_video, :data =\> @multimedia\_ad.id, :job\_key =\>  
session[:job\_key])

to:

MiddleMan.worker(:upload\_handler\_worker,  
session[:job\_key]).upload\_video(@multimedia\_ad.id)

In my opinion, a far superior syntax.

---

<div class="post-metadata">

**Author:** ![sineserz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ad7895/32.png) [@sineserz](https://www.ruby-forum.com/u/sineserz)\
**Post date:** [March 26, 2008, 7:56am UTC](https://www.ruby-forum.com/t/backgroundrb/132851/4 "2008-03-26T07:56:43Z")

</div>

Thanks Hemant,

It is working now.

---

<div class="post-metadata">

**Author:** ![sineserz](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ad7895/32.png) [@sineserz](https://www.ruby-forum.com/u/sineserz)\
**Post date:** [March 25, 2008, 10:26pm UTC](https://www.ruby-forum.com/t/backgroundrb/132851/5 "2008-03-25T22:26:31Z")

</div>

On Tue, Mar 25, 2008 at 6:10 PM, Nathan E.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Probably not the source of your problem but I can tell you are not using  
> the newest version of backgroundrb by your syntax. The new version goes  
> from this
> 
> MiddleMan.send\_request(:worker =\> :upload\_handler\_worker, :worker\_method  
> =\> :upload\_video, :data =\> @multimedia\_ad.id, :job\_key =\>  
> session[:job\_key])

When you are using send\_request to send task to worker, you are asking  
that I will wait for results back no matter how much time it takes.  
You shouldn’t use send\_request, its blocking in nature. You should  
rather use ask\_work

> to:
> 
> MiddleMan.worker(:upload\_handler\_worker,  
> session[:job\_key]).upload\_video(@multimedia\_ad.id)
> 
> In my opinion, a far superior syntax.

100%, above method is also non blocking in nature, so you can use it  
too!

> –  
> Posted via [http://www.ruby-forum.com/](http://www.ruby-forum.com/).
> 
> >

–  
Let them talk of their oriental summer climes of everlasting  
conservatories; give me the privilege of making my own summer with my  
own coals.

[http://gnufied.org](http://gnufied.org)
