# Threading in Rails

**URL:** <https://www.ruby-forum.com/t/threading-in-rails/149399>\
**Category:** Rails\
**Created:** [September 24, 2008, 1:15pm UTC](https://www.ruby-forum.com/t/threading-in-rails/149399 "2008-09-24T13:15:53Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Jaikishan\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ad7895/32.png) [@Jaikishan\_J](https://www.ruby-forum.com/u/Jaikishan_J)\
**Post date:** [September 24, 2008, 1:15pm UTC](https://www.ruby-forum.com/t/threading-in-rails/149399/1 "2008-09-24T13:15:53Z")

</div>

Hello,

I was wondering if someone can point me how to invoke threads from an  
action  
in a controller. Basically, in an action, I want to do some tasks  
asynchronously for which user need not wait.

–  
Thanks,  
Jaikishan

---

<div class="post-metadata">

**Author:** ![Jaikishan\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ad7895/32.png) [@Jaikishan\_J](https://www.ruby-forum.com/u/Jaikishan_J)\
**Post date:** [September 24, 2008, 1:20pm UTC](https://www.ruby-forum.com/t/threading-in-rails/149399/2 "2008-09-24T13:20:34Z")

</div>

It isn’t safe (at least not now) to create threads in Rails, but you  
can use something like Background Job →   
[http://codeforpeople.com/lib/ruby/bj/bj-1.0.1/README](http://codeforpeople.com/lib/ruby/bj/bj-1.0.1/README)

On Wed, Sep 24, 2008 at 8:15 AM, Jaikishan J. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> >

–  
Maurício Linhares  
[http://alinhavado.wordpress.com/](http://alinhavado.wordpress.com/) (pt-br) | [http://blog.codevader.com/](http://blog.codevader.com/)  
(en)  
João Pessoa, PB, +55 83 8867-7208

---

<div class="post-metadata">

**Author:** ![Jaikishan\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ad7895/32.png) [@Jaikishan\_J](https://www.ruby-forum.com/u/Jaikishan_J)\
**Post date:** [September 24, 2008, 1:28pm UTC](https://www.ruby-forum.com/t/threading-in-rails/149399/3 "2008-09-24T13:28:50Z")

</div>

Will look into it.

On Wed, Sep 24, 2008 at 4:49 PM, MaurÃ­cio Linhares \<  
removed\_email\_address@domain.invalid\> wrote:

> action
> 
> –  
> MaurÃ­cio Linhares  
> [http://alinhavado.wordpress.com/](http://alinhavado.wordpress.com/) (pt-br) | [http://blog.codevader.com/](http://blog.codevader.com/) (en)  
> JoÃ£o Pessoa, PB, +55 83 8867-7208
> 
> >

–  
Thanks,  
Jaikishan

“Enjoying the rights of being intelligent ignorant”

---

<div class="post-metadata">

**Author:** ![Jaikishan\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ad7895/32.png) [@Jaikishan\_J](https://www.ruby-forum.com/u/Jaikishan_J)\
**Post date:** [September 24, 2008, 1:30pm UTC](https://www.ruby-forum.com/t/threading-in-rails/149399/4 "2008-09-24T13:30:35Z")

</div>

Does this background job maintains a queue sort of thing? If yes, then  
how  
does some tasks can be concurrently executed?

On Wed, Sep 24, 2008 at 4:57 PM, Jaikishan J. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> > > Thanks,  
> > > [http://alinhavado.wordpress.com/](http://alinhavado.wordpress.com/) (pt-br) | [http://blog.codevader.com/(en)](http://blog.codevader.com/(en))  
> > > “Enjoying the rights of being intelligent ignorant”

–  
Thanks,  
Jaikishan

“Enjoying the rights of being intelligent ignorant”

---

<div class="post-metadata">

**Author:** ![Jaikishan\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ad7895/32.png) [@Jaikishan\_J](https://www.ruby-forum.com/u/Jaikishan_J)\
**Post date:** [September 24, 2008, 4:05pm UTC](https://www.ruby-forum.com/t/threading-in-rails/149399/5 "2008-09-24T16:05:17Z")

</div>

Check out the last two Railscasts.

> **[\#127 Rake in Background - RailsCasts](http://railscasts.com/episodes/127-rake-in-background)**
>
> Short Ruby on Rails screencasts containing tips, tricks and tutorials. Great for both novice and experienced web developers.

> **[\#128 Starling and Workling - RailsCasts](http://railscasts.com/episodes/128-starling-and-workling)**
>
> Short Ruby on Rails screencasts containing tips, tricks and tutorials. Great for both novice and experienced web developers.

I think this might be what you need.

---

<div class="post-metadata">

**Author:** ![Jaikishan\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ad7895/32.png) [@Jaikishan\_J](https://www.ruby-forum.com/u/Jaikishan_J)\
**Post date:** [September 24, 2008, 1:42pm UTC](https://www.ruby-forum.com/t/threading-in-rails/149399/6 "2008-09-24T13:42:55Z")

</div>

Background job usually runs a job at a time, which is cool as Ruby  
itself is almost “single threaded”, but if you want a solution with  
concurrent job execution, you can try SkyNet →   
[http://skynet.rubyforge.org/](http://skynet.rubyforge.org/)

On Wed, Sep 24, 2008 at 8:29 AM, Jaikishan J. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Does this background job maintains a queue sort of thing? If yes, then how  
> does some tasks can be concurrently executed?

–  
Maurício Linhares  
[http://alinhavado.wordpress.com/](http://alinhavado.wordpress.com/) (pt-br) | [http://blog.codevader.com/](http://blog.codevader.com/)  
(en)  
João Pessoa, PB, +55 83 8867-7208

---

<div class="post-metadata">

**Author:** ![Jaikishan\_J](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/ad7895/32.png) [@Jaikishan\_J](https://www.ruby-forum.com/u/Jaikishan_J)\
**Post date:** [September 25, 2008, 8:46am UTC](https://www.ruby-forum.com/t/threading-in-rails/149399/7 "2008-09-25T08:46:19Z")

</div>

I installed skynet in my rails application using  
$skynet\_install --rails .

After this, when I try to start my server (Mongreal), it throws me  
following  
error.

=\> Booting Mongrel (use ‘script/server webrick’ to force WEBrick)  
=\> Rails application starting on [http://127.0.0.1:3005](http://127.0.0.1:3005)  
=\> Call with -d to detach  
=\> Ctrl-C to shutdown server  
\*\* Starting Mongrel listening at 127.0.0.1:3005  
\*\* Starting Rails with development environment…  
Exiting  
/home/jaikishan/aptana/plugins/org.jruby\_1.1.0.5965\_RC2p2/lib/ruby/site\_ruby/1.8/rubygems/custom\_require.rb:27:in  
`require': no such file to load -- skynet (MissingSourceFile) from /home/jaikishan/aptana/plugins/org.jruby_1.1.0.5965_RC2p2/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `new\_constants\_in’  
from  
/home/jaikishan/aptana/plugins/org.jruby\_1.1.0.5965\_RC2p2/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active\_support/dependencies.rb:318:in  
`require' from /home/jaikishan/aptana/plugins/org.jruby_1.1.0.5965_RC2p2/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496 from /home/jaikishan/aptana/plugins/org.jruby_1.1.0.5965_RC2p2/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require’  
from  
/home/jaikishan/aptana/plugins/org.jruby\_1.1.0.5965\_RC2p2/lib/ruby/site\_ruby/1.8/rubygems/custom\_require.rb:27:in  
`require' from /home/jaikishan/aptana/plugins/org.jruby_1.1.0.5965_RC2p2/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `new\_constants\_in’  
from  
/home/jaikishan/aptana/plugins/org.jruby\_1.1.0.5965\_RC2p2/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active\_support/dependencies.rb:318:in  
`require' from /home/jaikishan/aptana/plugins/org.jruby_1.1.0.5965_RC2p2/lib/ruby/gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496 ... 35 levels... from /home/jaikishan/aptana/workspace/Analytics/./script/server:3 from -e:2:in `load’  
from -e:2

What to do now?

On Wed, Sep 24, 2008 at 7:34 PM, Fred [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > Hello,

–  
Thanks,  
Jaikishan

“Enjoying the rights of being intelligent ignorant”
