bsl-thor 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ verbose: false
2
+
3
+ amqp_host: host
4
+ amqp_port: 5672
5
+ amqp_user: user
6
+ amqp_password: password
7
+ amqp_vhost: vhost
@@ -0,0 +1,4 @@
1
+ verbose: false
2
+
3
+ em_port: 8467
4
+ em_auth_token: ""
@@ -0,0 +1,32 @@
1
+ require File.join(File.dirname(__FILE__), '../../ThorJob.rb')
2
+
3
+ module Thor
4
+ module Jobs
5
+ class Client < Thor::Job
6
+ @@AUTHOR = "korczis@gmail.com"
7
+ @@DESCRIPTION = "Client node"
8
+ @@LICENSE = "GPL"
9
+ @@VERSION = "0.0.1"
10
+ @@SUPPORTED_MSGS = []
11
+
12
+ # C-tor
13
+ def initialize(opts = {})
14
+ super(opts)
15
+ end
16
+
17
+ # Async runner
18
+ def run(opts = {})
19
+ super(opts)
20
+
21
+ if(options[:verbose])
22
+ Bsl::Logger::Log "Thor::Jobs::Client::run()"
23
+ end
24
+ end
25
+
26
+ # Console application main()
27
+ def main
28
+ super()
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,32 @@
1
+ require File.join(File.dirname(__FILE__), '../../ThorJob.rb')
2
+
3
+ module Thor
4
+ module Jobs
5
+ class Master < Thor::Job
6
+ @@AUTHOR = "korczis@gmail.com"
7
+ @@DESCRIPTION = "Master node"
8
+ @@LICENSE = "GPL"
9
+ @@VERSION = "0.0.1"
10
+ @@SUPPORTED_MSGS = []
11
+
12
+ # C-tor
13
+ def initialize(opts = {})
14
+ super(opts)
15
+ end
16
+
17
+ # Async runner
18
+ def run(opts = {})
19
+ super(opts)
20
+
21
+ if(options[:verbose])
22
+ Bsl::Logger::Log "Thor::Jobs::Master::run()"
23
+ end
24
+ end
25
+
26
+ # Console application main()
27
+ def main
28
+ super()
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,74 @@
1
+ require File.join(File.dirname(__FILE__), '../../ThorJob.rb')
2
+
3
+ module Thor
4
+ module Jobs
5
+ class MonitorClient < Thor::Job
6
+ @@AUTHOR = "korczis@gmail.com"
7
+ @@DESCRIPTION = "Monitoring node"
8
+ @@LICENSE = "GPL"
9
+ @@VERSION = "0.0.1"
10
+ @@SUPPORTED_MSGS = []
11
+
12
+ # C-tor
13
+ def initialize(opts = {})
14
+ super(opts)
15
+ end
16
+
17
+ # Async runner
18
+ def run(opts = {})
19
+ super(opts)
20
+
21
+
22
+ if(options[:verbose])
23
+ Bsl::Logger::Log "Thor::Jobs::MonitorClient::run()"
24
+ end
25
+
26
+
27
+ # Construct channel response name
28
+ channel_response_name = (self.class.name + ".response").downcase
29
+ if(options[:channel_response] != nil)
30
+ channel_response_name = options[:channel_response]
31
+ end
32
+
33
+ # Create response channel
34
+ if(options[:verbose])
35
+ Bsl::Logger::Log "Creating response channel - '#{channel_response_name}'"
36
+ end
37
+
38
+ channel_response = AMQP::Channel.new(amqp_conn)
39
+ exchange_response = channel_response.fanout(channel_response_name)
40
+
41
+ # Construct channel_request name
42
+ channel_request_name = (self.class.name + ".request").downcase
43
+ if(options[:channel_request] != nil)
44
+ channel_request_name = options[:channel_request]
45
+ end
46
+ queue_request_name = channel_request_name + "." + Thor::generate_guid
47
+
48
+ # Create channel request
49
+ if(options[:verbose])
50
+ Bsl::Logger::Log "Creating request channel - '#{channel_request_name}'"
51
+ end
52
+ channel_request = AMQP::Channel.new(amqp_conn)
53
+ exchange_request = channel_request.fanout(channel_request_name)
54
+
55
+ # Create and bind request queue
56
+ if(options[:verbose])
57
+ Bsl::Logger::Log "Creating request queue - '#{queue_request_name}'"
58
+ end
59
+ channel_request.queue(queue_request_name, :auto_delete => true).bind(exchange_request).subscribe do |payload|
60
+ if(options[:verbose])
61
+ Bsl::Logger::Log "Received payload: '#{payload}'"
62
+ end
63
+ process_msg(channel_request, exchange_request, payload)
64
+ exchange_response.publish("Hi!")
65
+ end
66
+ end
67
+
68
+ # Console application main()
69
+ def main
70
+ super()
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,90 @@
1
+ require File.join(File.dirname(__FILE__), '../../ThorJob.rb')
2
+
3
+ module Thor
4
+ module Jobs
5
+ class MonitorMaster < Thor::Job
6
+ @@AUTHOR = "korczis@gmail.com"
7
+ @@DESCRIPTION = "Monitoring node"
8
+ @@LICENSE = "GPL"
9
+ @@VERSION = "0.0.1"
10
+ @@SUPPORTED_MSGS = []
11
+
12
+ # C-tor
13
+ def initialize(opts = {})
14
+ super(opts)
15
+ end
16
+
17
+ # Async runner
18
+ def run(opts = {})
19
+ super(opts)
20
+
21
+ if(options[:verbose])
22
+ Bsl::Logger::Log "Thor::Jobs::MonitorMaster::run()"
23
+ end
24
+
25
+ # Construct channel_response name
26
+ channel_response_name = (self.class.name + ".response").downcase
27
+ if(options[:channel_response] != nil)
28
+ channel_response_name = options[:channel_response]
29
+ end
30
+ queue_response_name = channel_response_name + "." + Thor::generate_guid
31
+
32
+ # Create channel response
33
+ if(options[:verbose])
34
+ Bsl::Logger::Log "Creating response channel - '#{channel_response_name}'"
35
+ end
36
+ channel_response = AMQP::Channel.new(amqp_conn)
37
+ exchange_response = channel_response.fanout(channel_response_name)
38
+
39
+
40
+ # Create and bind response queue
41
+ if(options[:verbose])
42
+ Bsl::Logger::Log "Creating response queue - '#{queue_response_name}'"
43
+ end
44
+ channel_response.queue(queue_response_name, :auto_delete => true).bind(exchange_response).subscribe do |payload|
45
+ if(options[:verbose])
46
+ Bsl::Logger::Log "Received payload: '#{payload}'"
47
+ end
48
+ process_msg(channel_response, exchange_response, payload)
49
+ end
50
+
51
+ # Construct channel request name
52
+ channel_request_name = (self.class.name + ".request").downcase
53
+ if(options[:channel_request] != nil)
54
+ channel_request_name = options[:channel_request]
55
+ end
56
+
57
+ # Create request channel
58
+ if(options[:verbose])
59
+ Bsl::Logger::Log "Creating request channel - '#{channel_request_name}'"
60
+ end
61
+ channel_request = AMQP::Channel.new(amqp_conn)
62
+ exchange_request = channel_request.fanout(channel_request_name)
63
+
64
+ request_interval = 1
65
+ if(options[:request_interval])
66
+ request_interval = options[:request_interval]
67
+ end
68
+
69
+ # Publish
70
+ if(options[:verbose])
71
+ Bsl::Logger::Log "Starting publish, interval #{request_interval} sec(s)."
72
+ end
73
+
74
+ EventMachine.add_periodic_timer(request_interval) do
75
+ payload = {:a => "b"}.to_json
76
+ if(options[:verbose])
77
+ Bsl::Logger::Log "Publishing payload: '#{payload}'"
78
+ end
79
+ exchange_request.publish(payload)
80
+ end
81
+
82
+ end
83
+
84
+ # Console application main()
85
+ def main
86
+ super()
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,56 @@
1
+ require File.join(File.dirname(__FILE__), '../../ThorJob.rb')
2
+
3
+ module Thor
4
+ module Jobs
5
+ class Node < Thor::Job
6
+ @@AUTHOR = "korczis@gmail.com"
7
+ @@DESCRIPTION = "Core node functionality"
8
+ @@LICENSE = "GPL"
9
+ @@VERSION = "0.0.1"
10
+ @@SUPPORTED_MSGS = []
11
+
12
+ # C-tor
13
+ def initialize(opts = {})
14
+ super(opts)
15
+ end
16
+
17
+ # Async runner
18
+ def run(opts = {})
19
+ super(opts)
20
+
21
+ if(options[:verbose])
22
+ Bsl::Logger::Log "Thor::Jobs::Node::run()"
23
+ end
24
+ =begin
25
+ # Construct queue name
26
+ klass_name = (self.class.name + "s").downcase
27
+ queue_name = klass_name + "." + Thor::generate_guid
28
+
29
+ channel = AMQP::Channel.new(amqp_conn)
30
+ exchange = channel.fanout(klass_name)
31
+
32
+ channel.queue("#{rand(100)}", :auto_delete => true).bind(exchange).subscribe do |payload|
33
+ # Bsl::Logger::Log "#{payload} => joe"
34
+ end
35
+
36
+ channel.queue("#{rand(100)}", :auto_delete => true).bind(exchange).subscribe do |payload|
37
+ # Bsl::Logger::Log "#{payload} => aaron"
38
+ end
39
+
40
+ channel.queue("#{rand(100)}", :auto_delete => true).bind(exchange).subscribe do |payload|
41
+ # Bsl::Logger::Log "#{payload} => bob"
42
+ end
43
+
44
+ EventMachine.add_periodic_timer(0) do
45
+ exchange.publish("BOS 101, NYK 89").publish("ORL 85, ALT 88")
46
+ end
47
+ =end
48
+ end
49
+
50
+ # Console application main()
51
+ def main
52
+ super()
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,9 @@
1
+ require 'rubygems'
2
+ require 'active_record'
3
+
4
+ module Thor
5
+ module Model
6
+ class Client < ActiveRecord::Base
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'rubygems'
2
+ require 'active_record'
3
+
4
+ module Thor
5
+ module Model
6
+ class Job < ActiveRecord::Base
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ require 'rubygems'
2
+ require 'active_record'
3
+
4
+ module Thor
5
+ module Model
6
+ class Worker < ActiveRecord::Base
7
+ end
8
+ end
9
+ end
metadata ADDED
@@ -0,0 +1,132 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bsl-thor
3
+ version: !ruby/object:Gem::Version
4
+ hash: 27
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 2
10
+ version: 0.0.2
11
+ platform: ruby
12
+ authors:
13
+ - Black Snail Labs
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-12-19 00:00:00 Z
19
+ dependencies: []
20
+
21
+ description: Thor distributed framework
22
+ email: admin@blacksnaillabs.com
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files:
28
+ - LICENSE.txt
29
+ - README
30
+ - README.rdoc
31
+ - lib/BslThor.rb
32
+ - lib/ThorApplication.rb
33
+ - lib/ThorClient.rb
34
+ - lib/ThorCmd.rb
35
+ - lib/ThorJob.rb
36
+ - lib/ThorMaster.rb
37
+ - lib/ThorNode.rb
38
+ - lib/ThorUtils.rb
39
+ - lib/ThorWorker.rb
40
+ - lib/boot/Boot.rb
41
+ - lib/boot/Client.rb
42
+ - lib/boot/Master.rb
43
+ - lib/boot/Node.rb
44
+ - lib/config/ThorClient.yml.template
45
+ - lib/config/ThorCmd.yml.template
46
+ - lib/config/ThorMaster.yml.template
47
+ - lib/config/ThorNode.yml.template
48
+ - lib/config/ThorWorker.yml.template
49
+ - lib/jobs/Client-0.0.1/main.rb
50
+ - lib/jobs/Master-0.0.1/main.rb
51
+ - lib/jobs/MonitorClient-0.0.1/main.rb
52
+ - lib/jobs/MonitorMaster-0.0.1/main.rb
53
+ - lib/jobs/Node-0.0.1/main.rb
54
+ - lib/models/ThorModelClient.rb
55
+ - lib/models/ThorModelJob.rb
56
+ - lib/models/ThorModelWorker.rb
57
+ files:
58
+ - Gemfile
59
+ - LICENSE.txt
60
+ - Manifest
61
+ - README
62
+ - README.rdoc
63
+ - Rakefile
64
+ - app/amqp2sql.rb
65
+ - lib/BslThor.rb
66
+ - lib/ThorApplication.rb
67
+ - lib/ThorClient.rb
68
+ - lib/ThorCmd.rb
69
+ - lib/ThorJob.rb
70
+ - lib/ThorMaster.rb
71
+ - lib/ThorNode.rb
72
+ - lib/ThorUtils.rb
73
+ - lib/ThorWorker.rb
74
+ - lib/boot/Boot.rb
75
+ - lib/boot/Client.rb
76
+ - lib/boot/Master.rb
77
+ - lib/boot/Node.rb
78
+ - lib/config/ThorClient.yml.template
79
+ - lib/config/ThorCmd.yml.template
80
+ - lib/config/ThorMaster.yml.template
81
+ - lib/config/ThorNode.yml.template
82
+ - lib/config/ThorWorker.yml.template
83
+ - lib/jobs/Client-0.0.1/main.rb
84
+ - lib/jobs/Master-0.0.1/main.rb
85
+ - lib/jobs/MonitorClient-0.0.1/main.rb
86
+ - lib/jobs/MonitorMaster-0.0.1/main.rb
87
+ - lib/jobs/Node-0.0.1/main.rb
88
+ - lib/models/ThorModelClient.rb
89
+ - lib/models/ThorModelJob.rb
90
+ - lib/models/ThorModelWorker.rb
91
+ - bsl-thor.gemspec
92
+ homepage: http://github.com/blacksnaillabs/thor
93
+ licenses: []
94
+
95
+ post_install_message:
96
+ rdoc_options:
97
+ - --line-numbers
98
+ - --inline-source
99
+ - --title
100
+ - Bsl-thor
101
+ - --main
102
+ - README.rdoc
103
+ require_paths:
104
+ - lib
105
+ required_ruby_version: !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ hash: 3
111
+ segments:
112
+ - 0
113
+ version: "0"
114
+ required_rubygems_version: !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
117
+ - - ">="
118
+ - !ruby/object:Gem::Version
119
+ hash: 11
120
+ segments:
121
+ - 1
122
+ - 2
123
+ version: "1.2"
124
+ requirements: []
125
+
126
+ rubyforge_project: bsl-thor
127
+ rubygems_version: 1.8.12
128
+ signing_key:
129
+ specification_version: 3
130
+ summary: Thor distributed framework
131
+ test_files: []
132
+