Class: Skynet::Config
- Inherits:
-
Object
- Object
- Skynet::Config
- Includes:
- Enumerable
- Defined in:
- lib/skynet/skynet_config.rb
Overview
Skynet has many global configuration options. You can access specific options via Skynet::CONFIG = ? You can set many options via
Skynet.configure(:OPTION => option, :ANOTHEROPTION => anotheroption)
If you want specific configuration to only apply to a block of code you can pass configure a block
Skynet.configure(:SOMEOPTION => 'value') do
run code here
end
Config Options and current defaults: Skynet.configure( :ENABLE => true, :SOLO => false, :SKYNET_PID_DIR => "/tmp", :SKYNET_PID_FILE => "skynet.pid", :SKYNET_LOG_DIR => ENV, :SKYNET_LOG_FILE => "skynet.log", :SKYNET_LOG_LEVEL => Logger::ERROR, :SKYNET_LOCAL_MANAGER_URL => "druby://localhost:40000", :MESSAGE_QUEUE_ADAPTER => "Skynet::MessageQueueAdapter::TupleSpace", :TS_DRBURI => "druby://localhost:47647" :TS_USE_RINGSERVER => true, :TS_SERVER_HOSTS => ["localhost:7647"], :TS_SERVER_START_DELAY => 10, :MYSQL_QUEUE_DATABASE => "skynet_queue", :MYSQL_TEMPERATURE_CHANGE_SLEEP => 40, :MYSQL_QUEUE_TEMP_POW => 0.6, :MYSQL_MESSAGE_QUEUE_TAPLE => "skynet_message_queues", :MYSQL_MESSAGE_QUEUE_TEMP_CHECK_DELAY => 40, :MYSQL_NEXT_TASK_TIMEOUT => 60, :WORKER_CHECK_DELAY => 40, :GUID_GENERATOR => nil, :NUMBER_OF_WORKERS => 4, :PERCENTAGE_OF_TASK_ONLY_WORKERS => 0.7, :PERCENTAGE_OF_MASTER_ONLY_WORKERS => 0.2, :MAX_RETRIES => 6, :DEFAULT_MASTER_RETRY => 0, :DEFAULT_MAP_RETRY => 3, :DEFAULT_REDUCE_RETRY => 3 :KEEP_MAP_TASKS => false, :KEEP_REDUCE_TASKS => false )
ENABLE turns Skynet on or off.
SOLO turns on SOLO mode where Skynet can run in the current process without workers.
Its almost a Skynet emulation mode
MESSAGE_QUEUE_ADAPTER Skynet comes with 2 message queue adaptors Skynet::MessageQueueAdapter::TupleSpace Skynet::MessageQueueAdapter::Mysql The default is TupleSpace which is an in memory database. The mysql MQ takes running a migration that comes with skynet_install
The following only apply to the TupleSpace adapter :TS_DRBURI => "druby://localhost:47647" :TS_USE_RINGSERVER => true, :TS_SERVER_HOSTS => ["localhost:7647"],
The following only apply to the Mysql adapter :MYSQL_QUEUE_DATABASE => "skynet_queue", :MYSQL_TEMPERATURE_CHANGE_SLEEP => 40, :MYSQL_QUEUE_TEMP_POW => 0.6, :MYSQL_MESSAGE_QUEUE_TAPLE => "skynet_message_queues", :MYSQL_MESSAGE_QUEUE_TEMP_CHECK_DELAY => 40, :MYSQL_NEXT_TASK_TIMEOUT => 60,
Class Method Summary collapse
- .add_message_queue(queue_name) ⇒ Object
- .logfile_location ⇒ Object
- .method_missing(name, *args) ⇒ Object
- .pidfile_location ⇒ Object
- .queue_id_by_name(queue_name) ⇒ Object
- .queue_name_by_id(queue_id) ⇒ Object
Instance Method Summary collapse
Methods included from Enumerable
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
214 215 216 217 218 219 220 |
# File 'lib/skynet/skynet_config.rb', line 214 def method_missing(name,*args) if self.class.respond_to?(name) self.class.send(name,*args) else self.class.method_missing(name,*args) end end |
Class Method Details
.add_message_queue(queue_name) ⇒ Object
170 171 172 |
# File 'lib/skynet/skynet_config.rb', line 170 def self.(queue_name) self. << queue_name end |
.logfile_location ⇒ Object
191 192 193 194 195 196 197 |
# File 'lib/skynet/skynet_config.rb', line 191 def self.logfile_location if skynet_log_file.is_a?(String) and skynet_log_dir skynet_log_dir.sub(/\/$/,'') + "/" + skynet_log_file.sub(/^\//,'') else skynet_log_file end end |
.method_missing(name, *args) ⇒ Object
222 223 224 225 226 227 228 229 230 |
# File 'lib/skynet/skynet_config.rb', line 222 def self.method_missing(name, *args) name = name.to_s.upcase.to_sym if name.to_s =~ /^(.*)=$/ name = $1.to_sym Skynet::CONFIG[name] = args.first else Skynet::CONFIG[name] end end |
.pidfile_location ⇒ Object
199 200 201 202 203 204 205 |
# File 'lib/skynet/skynet_config.rb', line 199 def self.pidfile_location if skynet_pid_dir and skynet_pid_file skynet_pid_dir.sub(/\/$/,'') + "/" + skynet_pid_file.sub(/^\//,'') else skynet_pid_dir end end |
.queue_id_by_name(queue_name) ⇒ Object
174 175 176 177 178 179 180 |
# File 'lib/skynet/skynet_config.rb', line 174 def self.queue_id_by_name(queue_name) if Skynet::CONFIG[:MESSAGE_QUEUES].index(queue_name) return Skynet::CONFIG[:MESSAGE_QUEUES].index(queue_name) else raise Skynet::Error("#{queue_name} is not a valid queue") end end |
.queue_name_by_id(queue_id) ⇒ Object
182 183 184 185 186 187 188 189 |
# File 'lib/skynet/skynet_config.rb', line 182 def self.queue_name_by_id(queue_id) queue_id = queue_id.to_i if Skynet::CONFIG[:MESSAGE_QUEUES][queue_id] return Skynet::CONFIG[:MESSAGE_QUEUES][queue_id] else raise Skynet::Error("#{queue_id} is not a valid queue_id") end end |
Instance Method Details
#each ⇒ Object
166 167 168 |
# File 'lib/skynet/skynet_config.rb', line 166 def each Skynet::CONFIG.each {|k,v| yield k,v} end |
#manager_statfile_location ⇒ Object
207 208 209 210 211 212 213 |
# File 'lib/skynet/skynet_config.rb', line 207 def manager_statfile_location if skynet_log_dir.is_a?(String) and skynet_log_dir skynet_log_dir.sub(/\/$/,'') + "/" + skynet_manager_stats_file.sub(/^\//,'') else skynet_log_dir end end |