I'm a little further on this. I've started logging the process instead
of writing to ActiveRecord. This is my code:

def schedule_queries
  t = Time.now
  hosts = get_hosts(30)
  logger.info "Starting request for #{hosts.count} domains at #{t}"
  domains.each do |domain|
    Thread.new do
      begin
        logger.info "Making request for #{host.identifier} at #
{Time.now}"
        client = Net::HTTP.start(host.url)
        #set_active(domain)
        logger.info "Finished request for #{host.identifier} at #
{Time.now}"
      rescue
        #set_inactive(domain)
        logger.info "Error in request for #{host.identifier} at #
{Time.now}"
      ensure
        client.finish if client.active? if !client.nil?
      end
    end
  end
end

The log shows this:

Starting request for 30 domains at Thu Nov 19 11:50:01 +0100 2009
Making request for dym at Thu Nov 19 11:50:01 +0100 2009
Making request for nsn at Thu Nov 19 11:50:11 +0100 2009
Finished request for dym at Thu Nov 19 11:50:21 +0100 2009
Making request for ren at Thu Nov 19 11:50:21 +0100 2009
Finished request for nsn at Thu Nov 19 11:50:31 +0100 2009
Making request for ixf at Thu Nov 19 11:50:31 +0100 2009
Finished request for ren at Thu Nov 19 11:50:41 +0100 2009
Making request for phw at Thu Nov 19 11:50:41 +0100 2009
Finished request for ixf at Thu Nov 19 11:50:51 +0100 2009
Making request for frk at Thu Nov 19 11:50:51 +0100 2009
Finished request for phw at Thu Nov 19 11:51:01 +0100 2009
Making request for gyt at Thu Nov 19 11:51:01 +0100 2009
Finished request for frk at Thu Nov 19 11:51:11 +0100 2009
Making request for nlb at Thu Nov 19 11:51:11 +0100 2009
Finished request for gyt at Thu Nov 19 11:51:21 +0100 2009
Making request for tdz at Thu Nov 19 11:51:21 +0100 2009
Error in request for tdz at Thu Nov 19 11:51:39 +0100 2009
Finished request for nlb at Thu Nov 19 11:51:39 +0100 2009

As you can see, it does do -some- threading, but it finishes requests
only once every 10 seconds or so. What am I doing wrong? pharrington's
example works for me, but this one doesn't.

--

You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-t...@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=.


Reply via email to