Created
September 16, 2013 21:10
-
-
Save richardking/6586664 to your computer and use it in GitHub Desktop.
resque script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ➜ breport git:(rc-7197-team-stream-twitter) ✗ cat bin/resque | |
| #!/usr/bin/env ruby | |
| $LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib') | |
| begin | |
| require 'redis-namespace' | |
| rescue LoadError | |
| require 'rubygems' | |
| require 'redis-namespace' | |
| end | |
| require 'resque' | |
| require 'optparse' | |
| parser = OptionParser.new do |opts| | |
| opts.banner = "Usage: resque [options] COMMAND" | |
| opts.separator "" | |
| opts.separator "Options:" | |
| opts.on("-r", "--redis [HOST:PORT]", "Redis connection string") do |host| | |
| Resque.redis = host | |
| end | |
| opts.on("-N", "--namespace [NAMESPACE]", "Redis namespace") do |namespace| | |
| Resque.redis.namespace = namespace | |
| end | |
| opts.on("-h", "--help", "Show this message") do | |
| puts opts | |
| exit | |
| end | |
| opts.separator "" | |
| opts.separator "Commands:" | |
| opts.separator " remove WORKER Removes a worker" | |
| opts.separator " kill WORKER Kills a worker" | |
| opts.separator " list Lists known workers" | |
| end | |
| def test | |
| puts "test" | |
| args = ["us_front"] | |
| Resque.push('backgroundcache', :class => 'BackgroundCacheWorker', :args => args) | |
| Resque.validate(B, "test") | |
| Resque.enqueue(BackgroundCacheWorker, "test") | |
| end | |
| def kill(worker) | |
| abort "** resque kill WORKER_ID" if worker.nil? | |
| pid = worker.split(':')[1].to_i | |
| begin | |
| Process.kill("KILL", pid) | |
| puts "** killed #{worker}" | |
| rescue Errno::ESRCH | |
| puts "** worker #{worker} not running" | |
| end | |
| remove worker | |
| end | |
| def remove(worker) | |
| abort "** resque remove WORKER_ID" if worker.nil? | |
| Resque.remove_worker(worker) | |
| puts "** removed #{worker}" | |
| end | |
| def list | |
| if Resque.workers.any? | |
| Resque.workers.each do |worker| | |
| puts "#{worker} (#{worker.state})" | |
| end | |
| else | |
| puts "None" | |
| end | |
| end | |
| parser.parse! | |
| case ARGV[0] | |
| when 'kill' | |
| kill ARGV[1] | |
| when 'remove' | |
| remove ARGV[1] | |
| when 'list' | |
| list | |
| when 'test' | |
| test | |
| else | |
| puts parser.help | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment