Project

em-batch

0.0
No commit activity in last 3 years
No release in over 3 years
Provides ability to run more callbacked methods backed by EventMachine of single or more objects by elegant, readable and transparent way in a linear sequence, so subsequently in single batch.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 1.0.0
>= 1.5.2

Runtime

 Project Readme

EventMachine Batch

em-batch provides ability to run more callbacked methods of single or more objects by elegant, readable and transparent way in a linear sequence, so subsequently in single batch.

Two classes are available, sequencer and more general batch. Batch supports more objects in one batch, sequencer is syntactic sugar in fact for single object.

It's implementation of the callback-batch gem, but customized for running in EventMachine environment, so calls will be fully multiplexed to more subsequent ticks.

See some trivial examples:

require "eventmachine"
require "callback-batch"

class Foo
    def foo1
        yield :foo1
    end
    def foo2
        yield :foo2
    end
end

class Bar
    def bar1
        yield :bar1
    end
    def bar2
        yield :bar2
    end
end


EM::run do

    ### Sequencer

    s = CallbackSequencer::new(Foo::new)
    s.foo1
    s.foo2

    s.execute do      # now will be both methods executed
        p s.results   # will contain [:foo1, :foo2]
    end

    ### Batch

    s = CallbackBatch::new
    f = Foo::new
    b = Bar::new

    s.take(f).foo1
    s.take(b).bar2

    s.execute do      # now will be both methods executed
        p s.results   # will contain [:foo1, :bar2]
    end

end

Copyright

Copyright © 2011 – 2015 Martin Poljak. See LICENSE.txt for further details.