Sha256: c970bece4cedc1f13b4ae4d5d599c8223c34e0089f2cee439597a76b65347ca5

Contents?: true

Size: 1.51 KB

Versions: 18

Compression:

Stored size: 1.51 KB

Contents

$:.unshift File.dirname(__FILE__) + '/../../lib'
require 'mq'

AMQP.start(:host => 'localhost') do

  def log *args
    p args
  end

  # AMQP.logging = true

  clock = MQ.new.fanout('clock')
  EM.add_periodic_timer(1){
    puts

    log :publishing, time = Time.now
    clock.publish(Marshal.dump(time))
  }

  amq = MQ.new
  amq.queue('every second').bind(amq.fanout('clock')).subscribe{ |time|
    log 'every second', :received, Marshal.load(time)
  }

  amq = MQ.new
  amq.queue('every 5 seconds').bind(amq.fanout('clock')).subscribe{ |time|
    time = Marshal.load(time)
    log 'every 5 seconds', :received, time if time.strftime('%S').to_i%5 == 0
  }

end

__END__

[:publishing, Thu Jul 17 20:14:00 -0700 2008]
["every 5 seconds", :received, Thu Jul 17 20:14:00 -0700 2008]
["every second", :received, Thu Jul 17 20:14:00 -0700 2008]

[:publishing, Thu Jul 17 20:14:01 -0700 2008]
["every second", :received, Thu Jul 17 20:14:01 -0700 2008]

[:publishing, Thu Jul 17 20:14:02 -0700 2008]
["every second", :received, Thu Jul 17 20:14:02 -0700 2008]

[:publishing, Thu Jul 17 20:14:03 -0700 2008]
["every second", :received, Thu Jul 17 20:14:03 -0700 2008]

[:publishing, Thu Jul 17 20:14:04 -0700 2008]
["every second", :received, Thu Jul 17 20:14:04 -0700 2008]

[:publishing, Thu Jul 17 20:14:05 -0700 2008]
["every 5 seconds", :received, Thu Jul 17 20:14:05 -0700 2008]
["every second", :received, Thu Jul 17 20:14:05 -0700 2008]

[:publishing, Thu Jul 17 20:14:06 -0700 2008]
["every second", :received, Thu Jul 17 20:14:06 -0700 2008]

Version data entries

18 entries across 18 versions & 6 rubygems

Version Path
adamh-amqp-0.6.3.1 examples/mq/clock.rb
brontes3d-amqp-0.6.4.0 examples/mq/clock.rb
brontes3d-amqp-0.6.4.1 examples/mq/clock.rb
brontes3d-amqp-0.6.4.2 examples/mq/clock.rb
brontes3d-amqp-0.6.4.3 examples/mq/clock.rb
brontes3d-amqp-0.6.4 examples/mq/clock.rb
fotonauts-amqp-0.6.1 examples/mq/clock.rb
fotonauts-amqp-0.6.4 examples/mq/clock.rb
tmm1-amqp-0.6.1 examples/mq/clock.rb
tmm1-amqp-0.6.3 examples/mq/clock.rb
tmm1-amqp-0.6.4 examples/mq/clock.rb
totty-amqp-0.6.7.1 examples/mq/clock.rb
totty-amqp-0.6.7.1.totty examples/mq/clock.rb
brontes3d-amqp-0.6.7.1 examples/mq/clock.rb
amqp-0.6.7 examples/mq/clock.rb
amqp-0.6.6 examples/mq/clock.rb
amqp-0.6.5 examples/mq/clock.rb
amqp-0.6.4 examples/mq/clock.rb