Sha256: 9883741d54fa7436de6580b2f4a6c7d4339cc2c1837320be772cdb29f3597baa

Contents?: true

Size: 1.54 KB

Versions: 5

Compression:

Stored size: 1.54 KB

Contents

require 'java'
require 'akka-modules-1.0'

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

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

module Actors
  class BlockActor < Akka::UntypedActor
    def self.spawn(&block)
      Akka::Actors.actorOf(self).tap do |actor|
        actor.instance_variable_set(:@_block, block)
        actor.start
      end
    end
    
    def self.create(*args)
      new(*args)
    end
    
    def onReceive(msg)
      puts "Calling block with message #{msg}"
      @block.call(msg)
    end
  end
end

actor = Actors::BlockActor.spawn do |msg|
  puts "Helooo from block: #{msg}"
end

connection = Akka::AMQP.newConnection #(Akka::AMQP::ConnectionParameters.new("127.0.0.1", 5672, "guest", "guest", "/"))

exchangeParameters = Akka::AMQP::ExchangeParameters.new("my.exchange", Akka::Direct.getInstance());
# 
# consumerParameters = Akka::AMQP::ConsumerParameters.new("my.test", actor, exchangeParameters)
handler = Actors::BlockActor.spawn do |msg|
  puts "Hello #{msg}"
end

params = Akka::AMQP::ConsumerParameters.new("my.queue", handler, "my.queue", Akka::AMQP::ActiveDeclaration.new, true, Akka::AMQP::ChannelParameters.new)
consumer = Akka::AMQP.newConsumer(connection, params)

# consumer = Akka::AMQP.newConsumer(connection, consumerParameters)

5.times do
  puts "Sending message"
  producer = Akka::AMQP.newProducer(connection, Akka::AMQP::ProducerParameters.new(exchangeParameters))
  producer.sendOneWay(Akka::Message.new("Actor".to_java_bytes, "my.queue"))
  sleep 1
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
akka-0.0.5 lib/akka/test.rb
akka-0.0.4 lib/akka/test.rb
akka-0.0.3 lib/akka/test.rb
akka-0.0.2 lib/akka/test.rb
akka-0.0.1 lib/akka/test.rb