Skip to content

Instantly share code, notes, and snippets.

@komazarari
Created November 15, 2015 14:59
Show Gist options
  • Save komazarari/b488562858df7e5d4e5a to your computer and use it in GitHub Desktop.
Save komazarari/b488562858df7e5d4e5a to your computer and use it in GitHub Desktop.
require 'rack/rpc'
require 'sucker_punch'
require 'open3'
class Server < Rack::RPC::Server
@@lock = Mutex.new
class Worker
include SuckerPunch::Job
workers 3
def perform(input, lock)
lock.synchronize do
sleep 5
Open3.capture2e(input)
end
end
end
def exec(*args)
Worker.new.perform(args.join(' '), @@lock)
end
rpc 'exec' => :exec
end
use Rack::RPC::Endpoint, Server.new, path: '/'
run -> {}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment