capistrano-resque 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,29 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ capistrano-resque (0.0.1)
5
+ capistrano
6
+
7
+ GEM
8
+ remote: http://rubygems.org/
9
+ specs:
10
+ capistrano (2.11.2)
11
+ highline
12
+ net-scp (>= 1.0.0)
13
+ net-sftp (>= 2.0.0)
14
+ net-ssh (>= 2.0.14)
15
+ net-ssh-gateway (>= 1.1.0)
16
+ highline (1.6.11)
17
+ net-scp (1.0.4)
18
+ net-ssh (>= 1.99.1)
19
+ net-sftp (2.0.5)
20
+ net-ssh (>= 2.0.9)
21
+ net-ssh (2.3.0)
22
+ net-ssh-gateway (1.1.0)
23
+ net-ssh (>= 1.99.1)
24
+
25
+ PLATFORMS
26
+ ruby
27
+
28
+ DEPENDENCIES
29
+ capistrano-resque!
data/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # Capistrano Resque
2
+
3
+ todo
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require "bundler"
2
+ require "bundler/gem_tasks"
@@ -0,0 +1,19 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path("../lib/capistrano-resque/version", __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.name = "capistrano-resque"
6
+ gem.version = CapistranoResque::VERSION.dup
7
+ gem.author = "Steven Shingler"
8
+ gem.email = "shingler@gmail.com"
9
+ gem.homepage = "https://github.com/sshingler/capistrano-resque"
10
+ gem.summary = %q{Resque integration for Capistrano}
11
+ gem.description = %q{Capistrano plugin that integrates Resque server tasks.}
12
+
13
+ gem.files = `git ls-files`.split("\n")
14
+ gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
+ gem.executables = `git ls-files -- bin/*`.split("\n").map{|f| File.basename(f)}
16
+ gem.require_paths = ["lib"]
17
+
18
+ gem.add_runtime_dependency "capistrano"
19
+ end
@@ -0,0 +1,2 @@
1
+ require "capistrano-resque/version"
2
+ require "capistrano-resque/capistrano_integration"
@@ -0,0 +1,59 @@
1
+ require "capistrano"
2
+ require "capistrano/version"
3
+
4
+ module CapistranoResque
5
+ class CapistranoIntegration
6
+ def self.load_into(capistrano_config)
7
+ capistrano_config.load do
8
+
9
+ _cset(:num_of_queues, 1)
10
+ _cset(:queue_name, "*")
11
+ _cset(:app_env, (fetch(:rails_env) rescue "production"))
12
+ _cset(:verbosity, 1)
13
+
14
+ def remote_file_exists?(full_path)
15
+ "true" == capture("if [ -e #{full_path} ]; then echo 'true'; fi").strip
16
+ end
17
+
18
+ def remote_process_exists?(pid_file)
19
+ capture("ps -p $(cat #{pid_file}) ; true").strip.split("\n").size == 2
20
+ end
21
+
22
+ namespace :resque do
23
+ desc "Start Resque workers"
24
+ task :start_workers do
25
+ puts "Starting #{num_of_queues} worker(s) with QUEUE: #{queue_name}"
26
+ num_of_queues.times do |i|
27
+ pid = "./tmp/pids/resque_worker_#{i}.pid"
28
+ run "cd #{current_path} && RAILS_ENV=#{app_env} QUEUE=#{queue_name} \
29
+ PIDFILE=#{pid} BACKGROUND=yes VVERBOSE=#{verbosity} \
30
+ bundle exec rake environment resque:work > log/resque_worker_#{i}.log"
31
+ end
32
+ end
33
+
34
+ desc "Quit running Resque workers"
35
+ task :stop_workers do
36
+ num_of_queues.times do |i|
37
+ pid = "#{current_path}/tmp/pids/resque_worker_#{i}.pid"
38
+ if remote_file_exists?(pid)
39
+ if remote_process_exists?(pid)
40
+ logger.important("Stopping...", "Resque Worker #{i}")
41
+ run "#{try_sudo} kill `cat #{pid}`"
42
+ else
43
+ run "rm #{pid}"
44
+ logger.important("Resque Worker #{i} is not running.", "Resque")
45
+ end
46
+ else
47
+ logger.important("No PIDs found. Check if Resque is running.", "Resque")
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+
57
+ if Capistrano::Configuration.instance
58
+ CapistranoResque::CapistranoIntegration.load_into(Capistrano::Configuration.instance)
59
+ end
@@ -0,0 +1,5 @@
1
+ module CapistranoResque
2
+ unless defined?(::CapistranoResque::VERSION)
3
+ VERSION = "0.0.1".freeze
4
+ end
5
+ end
metadata ADDED
@@ -0,0 +1,86 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: capistrano-resque
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Steven Shingler
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2012-04-18 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: capistrano
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
32
+ type: :runtime
33
+ version_requirements: *id001
34
+ description: Capistrano plugin that integrates Resque server tasks.
35
+ email: shingler@gmail.com
36
+ executables: []
37
+
38
+ extensions: []
39
+
40
+ extra_rdoc_files: []
41
+
42
+ files:
43
+ - Gemfile
44
+ - Gemfile.lock
45
+ - README.md
46
+ - Rakefile
47
+ - capistrano-resque.gemspec
48
+ - lib/capistrano-resque.rb
49
+ - lib/capistrano-resque/capistrano_integration.rb
50
+ - lib/capistrano-resque/version.rb
51
+ homepage: https://github.com/sshingler/capistrano-resque
52
+ licenses: []
53
+
54
+ post_install_message:
55
+ rdoc_options: []
56
+
57
+ require_paths:
58
+ - lib
59
+ required_ruby_version: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ hash: 3
65
+ segments:
66
+ - 0
67
+ version: "0"
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ version: "0"
77
+ requirements: []
78
+
79
+ rubyforge_project:
80
+ rubygems_version: 1.8.15
81
+ signing_key:
82
+ specification_version: 3
83
+ summary: Resque integration for Capistrano
84
+ test_files: []
85
+
86
+ has_rdoc: