mirror of
https://github.com/mperham/sidekiq.git
synced 2022-11-09 13:52:34 -05:00
58 lines
1.2 KiB
Ruby
58 lines
1.2 KiB
Ruby
|
# Make sure you have Sinatra installed, then start sidekiq with
|
||
|
# ./bin/sidekiq -r ./examples/sinkiq.rb
|
||
|
# Simply run Sinatra with
|
||
|
# ruby examples/sinkiq.rb
|
||
|
# and then browse to http://localhost:4567
|
||
|
#
|
||
|
require 'sinatra'
|
||
|
require 'sidekiq/worker'
|
||
|
$redis = Sidekiq::RedisConnection.create
|
||
|
|
||
|
class SinatraWorker
|
||
|
include Sidekiq::Worker
|
||
|
|
||
|
def perform(msg="lulz you forgot a msg!")
|
||
|
$redis.lpush("sinkiq-example-messages", msg)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
get '/' do
|
||
|
@failed = $redis.get('stat:failed')
|
||
|
@processed = $redis.get('stat:processed')
|
||
|
@messages = $redis.lrange('sinkiq-example-messages', 0, -1)
|
||
|
erb :index
|
||
|
end
|
||
|
|
||
|
post '/msg' do
|
||
|
SinatraWorker.perform_async params[:msg]
|
||
|
redirect to('/')
|
||
|
end
|
||
|
|
||
|
__END__
|
||
|
|
||
|
@@ layout
|
||
|
<html>
|
||
|
<head>
|
||
|
<title>Sinatra + Sidekiq</title>
|
||
|
<body>
|
||
|
<%= yield %>
|
||
|
</body>
|
||
|
</html>
|
||
|
|
||
|
@@ index
|
||
|
<h1>Sinata + Sidekiq Example</h1>
|
||
|
<h2>Failed: <%= @failed %></h2>
|
||
|
<h2>Processed: <%= @processed %></h2>
|
||
|
|
||
|
<form method="post" action="/msg">
|
||
|
<input type="text" name="msg">
|
||
|
<input type="submit" value="Add Message">
|
||
|
</form>
|
||
|
|
||
|
<a href="/">Refresh page</a>
|
||
|
|
||
|
<h3>Messages</h3>
|
||
|
<% @messages.each do |msg| %>
|
||
|
<p><%= msg %></p>
|
||
|
<% end %>
|