Popularity
6.3
Growing
Activity
0.0
Stable
32
4
3

Programming language: Crystal
Tags: Queue    

dispatch alternatives and similar shards

Based on the "Queue" category.
Alternatively, view dispatch alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of dispatch or a related project?

Add another 'Queue' Shard

README

Dispatch Build Status

In-memory job queuing

# example.cr
require "./src/dispatch"

Dispatch.configure do |config|
  config.num_workers = 5
  config.queue_size = 10
  config.logger = Logger.new(IO::Memory.new)
end

class FakeJob
  include Dispatchable

  def perform(name)
    p "#{Time.now}: Hello, #{name}"
  end
end

class ErrorJob
  include Dispatchable

  def perform
    raise "Hello!"
  end
end

Dispatch.config # => <Dispatch::Configuration:0x1042dafb0 @num_workers=5, @queue_size=10>
FakeJob.dispatch("Bob")
FakeJob.dispatch("Emily")
FakeJob.dispatch_in(5.seconds, "Billy")
FakeJob.dispatch("Maddy")

ErrorJob.dispatch

Dispatch.successes # => 0

sleep 6

Dispatch.successes # => 4
Dispatch.failures # => 1

Output:

"2016-12-13 14:23:53 -0500: Hello, Bob"
"2016-12-13 14:23:53 -0500: Hello, Emily"
"2016-12-13 14:23:53 -0500: Hello, Maddy"
"2016-12-13 14:23:58 -0500: Hello, Billy"