cs-service 0.2.2 → 0.3.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 606521c9d1281693930ffae5e433c9fa8dd99632
4
- data.tar.gz: 881ebcc7a1d62086d00e288917fafb9d612bafb8
3
+ metadata.gz: 367e793d07e4406f41af23dcc22b08c60936b719
4
+ data.tar.gz: 354b5c95c030c2f361a54abdee7bc288d8d1d640
5
5
  SHA512:
6
- metadata.gz: 2d33e7cf4252d4d6449d32dc6733a541bc07ec24aac6e7302b8ac2ec6ebc6f02cc12ebf66d7efe5133b6b57b9131b8520da0d106bf298ddfc1a46ed4a791f28a
7
- data.tar.gz: bfda6d7bbd9545f01adaf5b30f6131bd7e4b5f1fa206ae75b1fba18b49458e66f566bfe1bb255cee9e0d99ee04b381559baf789aa9f678a62bb2a03d49029991
6
+ metadata.gz: e4a57b80bcd336ba1418b9c9ac78e9526858668c2423cc1f88415a7be811f12ba340a09fcb4d7b00e48d1489f5a0c37683c9f284e95c04386a272bcb2afb0c44
7
+ data.tar.gz: 5c203d1292de91607a356ec28733c6358ba015015d4f55e508bc42def51bda5a88864482468c03acc6bb4198924e0e83de93dc7c889b38b2aa14fe92898ef529
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Cs::Service
1
+ # cs-service
2
2
 
3
3
  cs-service 财说服务管理工具, 根据项目中的config/project.yml, 来启动相关服务
4
4
 
@@ -10,14 +10,18 @@ cs-service 财说服务管理工具, 根据项目中的config/project.yml, 来
10
10
 
11
11
  ## Commands:
12
12
 
13
- cs-service env [ENV_NAME] # 环境变量检查
14
- cs-service eye ...ARGS # 执行eye口令, 详细参考 cs-service eye
15
- cs-service help [COMMAND] # 帮助
16
- cs-service info [NAME] # 查看当前运行状态
17
- cs-service load [FILE] # 加载配置文件,为空时加载默认配置
18
- cs-service quit # 退出 cs-service
13
+ cs-service env [ENV_NAME] # 环境变量检查
14
+ cs-service eye ...ARGS # 执行eye口令, 详细参考 cs-service eye
15
+ cs-service help [COMMAND] # 帮助
16
+ cs-service info [PROJECT] # 查看当前运行状态
17
+ cs-service load # 首次加载配置文件
18
+ cs-service quit # 退出 cs-service
19
+ cs-service restart [PROJECT] # 重启项目
20
+ cs-service start [PROJECT] # 启动项目
21
+ cs-service stop [PROJECT] # 停止项目
22
+ cs-service version # 当前版本
19
23
 
20
- ### Step1 检查配置是否生效
24
+ ### Step1 检查配置是否生效, 是否可以找到有效的配置文件
21
25
 
22
26
  $ cs-service env
23
27
 
@@ -25,14 +29,19 @@ cs-service 财说服务管理工具, 根据项目中的config/project.yml, 来
25
29
 
26
30
  $ cs-service load
27
31
 
28
- ### Step3 如果环境设置正确,则启动项目
32
+ ### Step3 查看当前加载的项目状态
33
+
34
+ $ cs-service info
35
+
36
+ ### Step4 如果环境设置正确,则启动项目
29
37
 
30
38
  $ cs-service start # 启动所有项目
39
+
40
+ # 如果单独启动项目
31
41
  $ cs-service start web # 启动caishuo主站
32
42
  $ cs-service start rest_server # 启动Rest Server
33
43
  $ cs-service start trading_server # 启动Trading Server
34
44
 
35
-
36
45
  ## Development
37
46
 
38
47
  rake build
@@ -2,7 +2,7 @@ require 'hashie'
2
2
  # 启动项目
3
3
  def run_projects
4
4
  fetch_config_files(project_roots).each do |root_path|
5
- project(root_path, ENV['RACK_ENV']||'development')
5
+ project(root_path, ENV['RACK_ENV'] || 'development')
6
6
  end
7
7
  end
8
8
 
@@ -23,6 +23,12 @@ def project(root_path, env = :development)
23
23
 
24
24
  process_puma(self, config[:puma]) if config[:puma]
25
25
  process_sneaker(self, config[:sneaker]) if config[:sneaker]
26
+
27
+ group :realtime do
28
+ process_realtime(self, pool: config[:realtime][:pool]) if config[:realtime][:pool]
29
+ process_rt_client(self) if config[:realtime][:rt_client]
30
+ end if config[:realtime]
31
+
26
32
  group :resque do
27
33
  process_scheduler(self) if config[:resque][:scheduler]
28
34
  process_worker(self, config[:resque][:worker]) if config[:resque][:worker]
@@ -42,7 +48,5 @@ end
42
48
 
43
49
  def fetch_config_files(project_roots = [])
44
50
  project_roots << ENV['CURRENT_PWD']
45
- a = project_roots.compact.uniq.find_all{|project_root| Eye::Logger.info('='*100 + File.join(project_root, 'config', 'project.yml')); File.exist?(File.join(project_root, 'config', 'project.yml'))}
46
- Eye::Logger.info('========='*100 + ENV['PWD'])
47
- a
51
+ project_roots.compact.uniq.find_all{|project_root| Eye::Logger.info('='*100 + File.join(project_root, 'config', 'project.yml')); File.exist?(File.join(project_root, 'config', 'project.yml'))}
48
52
  end
@@ -1,18 +1,15 @@
1
- def process_realtime(proxy, queues)
2
- queues.each do |market, num|
3
- proxy.group "realtime_#{market}" do
4
- (1..num).each do |i|
5
- process("worker_#{market}_#{i}") do
6
- daemonize true
7
- pid_file "tmp/pids/realtime_worker_#{market}.#{i}.pid"
8
- stdall 'log/realtime.log'
1
+ def process_realtime(proxy, pool: {})
2
+ pool.each do |market, num|
3
+ (1..num).each do |i|
4
+ proxy.process("#{market}_#{i}") do
5
+ daemonize true
6
+ pid_file "tmp/pids/realtime_worker_#{market}.#{i}.pid"
7
+ stdall 'log/realtime.log'
9
8
 
10
- env 'PIDFILE' => "tmp/pids/realtime_worker_#{market}.#{i}.pid",
11
- 'RACK_ENV' => RACK_ENV
9
+ env 'PIDFILE' => "tmp/pids/realtime_worker_#{market}.#{i}.pid"
12
10
 
13
- start_command "bundle exec rake stock:realtime_#{market} --trace"
14
- end
11
+ start_command "bundle exec rake stock:realtime_#{market} --trace"
15
12
  end
16
13
  end
17
14
  end
18
- end
15
+ end
@@ -0,0 +1,11 @@
1
+ def process_rt_client(proxy)
2
+ proxy.process('rt_client') do
3
+ daemonize true
4
+ pid_file 'tmp/pids/rt_client.pid'
5
+ stdall 'log/realtime.log'
6
+
7
+ env 'PIDFILE' => 'tmp/pids/rt_client.pid'
8
+
9
+ start_command 'bundle exec rake rt_client:sync --trace'
10
+ end
11
+ end
data/examples/project.yml CHANGED
@@ -20,6 +20,14 @@ common: &default_settings
20
20
  # 需要启动的sneaker consumer
21
21
  queue: "Trading::PmsConsumer,FeedConsumer,JpushConsumer,StockRealtimeConsumer"
22
22
 
23
+ # 是否开启realtime worker
24
+ realtime:
25
+ # 需要启动的realtime worker
26
+ queue:
27
+ shanghai: 1
28
+ shenzhen: 1
29
+ hk_us: 1
30
+
23
31
 
24
32
  development:
25
33
  <<: *default_settings
@@ -7,7 +7,7 @@ module Cs
7
7
  end
8
8
 
9
9
  # Cli
10
- class Cli < Thor
10
+ class Cli < Thor # rubocop:disable ClassLength
11
11
  ENVS = %w(REST_SERVER_ROOT TRADING_SERVER_ROOT RAILS_ROOT RACK_ENV).freeze
12
12
  PROJECTS = %w( rest_server trading_server web).freeze
13
13
  CONFIG_FILES = {
@@ -19,8 +19,9 @@ module Cs
19
19
  desc 'load', '首次加载配置文件'
20
20
  method_option :force, type: :boolean, aliases: '-f', desc: '强制重新加载配置文件'
21
21
  def load_conf
22
+ invoke(:env)
22
23
  quit if options[:force]
23
- run_eye("load #{File.join(HOME_PATH, 'config/caishuo.eye')}")
24
+ run_eye(:load, File.join(HOME_PATH, 'config/caishuo.eye'))
24
25
  end
25
26
 
26
27
  desc 'env [ENV_NAME]', '环境变量检查'
@@ -46,31 +47,33 @@ module Cs
46
47
 
47
48
  desc 'info [PROJECT]', '查看当前运行状态'
48
49
  def info(name = nil)
49
- run_eye("info #{name}")
50
+ # invoke(:env)
51
+ run_eye(:info, name)
50
52
  end
51
-
52
- desc 'start [PROJECT]', '启动项目'
53
- def start(name = nil)
54
- name ||= PROJECTS * ' '
55
- run_eye("start #{name}")
56
- end
57
-
58
- desc 'stop [PROJECT]', '停止项目'
59
- def stop(name = nil)
60
- name ||= PROJECTS * ' '
61
- run_eye("stop #{name}")
62
- end
63
-
64
- desc 'restart [PROJECT]', '重启项目'
65
- def restart(name = nil)
66
- name ||= PROJECTS * ' '
67
- run_eye("restart #{name}")
53
+ map status: :info
54
+
55
+ {
56
+ start: '启动',
57
+ stop: '停止',
58
+ restart: '重启',
59
+ delete: '删除'
60
+ }.each do |command, name|
61
+ desc "#{command} PROJECT[,...]", "#{name}项目"
62
+ define_method(command) do |*projects|
63
+ projects = PROJECTS if projects == []
64
+ run_eye(command, *projects)
65
+ end
68
66
  end
69
67
 
70
68
  desc 'quit', '退出 cs-service'
71
69
  def quit
72
- invoke(:stop)
73
- run_eye('quit')
70
+ stop
71
+ run_eye(:quit)
72
+ end
73
+
74
+ desc 'log [PROJECT]', '查看日志'
75
+ def log(project = nil)
76
+ run_eye(:trace, project || PROJECTS)
74
77
  end
75
78
 
76
79
  desc 'help [COMMAND]', '帮助'
@@ -96,8 +99,9 @@ module Cs
96
99
  end
97
100
  end
98
101
 
99
- def run_eye(args = '')
100
- puts `CURRENT_PWD=#{current_root} eye #{args}`
102
+ def run_eye(command, *args)
103
+ ENV['CURRENT_PWD'] = current_root
104
+ ::Eye::Cli.new.send(command, *args)
101
105
  end
102
106
 
103
107
  # 查找有效的配置文件
@@ -1,5 +1,5 @@
1
1
  module Cs
2
2
  module Service
3
- VERSION = "0.2.2"
3
+ VERSION = "0.3.0.beta1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cs-service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - wangchangming
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-03 00:00:00.000000000 Z
11
+ date: 2016-03-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -101,6 +101,7 @@ files:
101
101
  - config/processes/project.rb
102
102
  - config/processes/puma.rb
103
103
  - config/processes/realtime.rb
104
+ - config/processes/rt_client.rb
104
105
  - config/processes/scheduler.rb
105
106
  - config/processes/sneaker.rb
106
107
  - config/processes/worker.rb
@@ -125,9 +126,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
125
126
  version: '0'
126
127
  required_rubygems_version: !ruby/object:Gem::Requirement
127
128
  requirements:
128
- - - ">="
129
+ - - ">"
129
130
  - !ruby/object:Gem::Version
130
- version: '0'
131
+ version: 1.3.1
131
132
  requirements: []
132
133
  rubyforge_project:
133
134
  rubygems_version: 2.4.5