Sha256: 7abc679d3bf866b887a051258a52d3bb853bfda5d112350c5f8b421f6d10f0fd

Contents?: true

Size: 894 Bytes

Versions: 2

Compression:

Stored size: 894 Bytes

Contents

$: << 'vendor/akka'

require 'java'
require 'akka-modules-1.0'
require 'net/http'

module Akka
  include_package 'akka.actor'
  include_package 'akka.amqp'
  include_package 'akka.dispatch'
end

class Actor < Akka::UntypedActor
  def self.spawn
    Akka::Actors.actorOf { new }.tap do |actor|
      actor.setDispatcher(Akka::Dispatchers.newThreadBasedDispatcher(actor))
      actor.start
    end
  end
  
  def onReceive(msg)
    url = String.from_java_bytes(msg.payload)
    puts "Downloaded #{Net::HTTP.get(URI.parse(url)).length} bytes from #{url}"
  end
end

connection = Akka::AMQP.newConnection(Akka::AMQP::ConnectionParameters.new)

10.times do
  params = Akka::AMQP::ConsumerParameters.new(
    "fetch.url", Actor.spawn, "fetch.url", Akka::AMQP::ActiveDeclaration.new(false, false), true, Akka::AMQP::ChannelParameters.new
  )
  consumer = Akka::AMQP.newConsumer(connection, params)
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
akka-0.0.3 examples/example-3.rb
akka-0.0.1 examples/example-3.rb