cs-service 0.2.2 → 0.3.0.beta1

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.
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