Skip to content

Instantly share code, notes, and snippets.

@kkuchta
Created November 23, 2012 19:19
Show Gist options
  • Save kkuchta/4136909 to your computer and use it in GitHub Desktop.
Save kkuchta/4136909 to your computer and use it in GitHub Desktop.
Simple job server
require 'sinatra'
jobs = Hash.new
get '/' do
<<-eos
Usage:<br />
&nbsp;&nbsp;/getJob/&lt;jobType&gt;<br />
&nbsp;&nbsp;/addJob/&lt;jobType&gt;/&lt;jobInfo&gt;<br />
&nbsp;&nbsp;/showJobs<br />
eos
end
get '/getJob/:jobType' do
jobType = params[:jobType]
logger.info( "waiting on job type " + jobType )
sleep(1) until jobs[jobType] != nil and jobs[jobType].length > 0
"Got job of type " + jobType + " with job data " + jobs[jobType].shift
end
get '/addJob/:jobType/:jobInfo' do
jobType = params[:jobType]
jobs[jobType] = Array.new if jobs[jobType] == nil
jobs[jobType].push params[:jobInfo]
"job added"
end
get '/showJobs' do
output = '<ul>'
jobs.keys.each do |jobType|
output += '<li>' + jobType + '</li>'
output += '<ul>'
jobs[jobType].each do |jobInfo|
output += '<li>' + jobInfo.to_s + '</li>'
end
output += '</ul>'
end
output += '</ul>'
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment