Module: TaskTempest::Bootstrap
- Included in:
- Engine
- Defined in:
- lib/task_tempest/bootstrap.rb
Instance Method Summary collapse
- #after_initialize ⇒ Object
- #before_initialize ⇒ Object
- #bookkeeper ⇒ Object
- #bootstrap(error_action) ⇒ Object
- #dispatcher ⇒ Object
- #init_bookkeeper ⇒ Object
- #init_dispatcher ⇒ Object
- #init_logging ⇒ Object
- #init_queue ⇒ Object
- #init_require ⇒ Object
- #init_task_logging ⇒ Object
- #init_tasks ⇒ Object
- #init_thread_pool ⇒ Object
- #logger ⇒ Object
- #queue ⇒ Object
- #storm ⇒ Object
- #task_logger ⇒ Object
Instance Method Details
#after_initialize ⇒ Object
144 145 146 147 148 149 150 |
# File 'lib/task_tempest/bootstrap.rb', line 144 def after_initialize @after_initialize ||= begin settings.after_initialize.call(logger) logger.info "after_initialize called" true end end |
#before_initialize ⇒ Object
136 137 138 139 140 141 142 |
# File 'lib/task_tempest/bootstrap.rb', line 136 def before_initialize @before_initialize ||= begin logger.info "before_initialize called" settings.before_initialize.call(logger) true end end |
#bookkeeper ⇒ Object
61 62 63 64 65 66 67 68 |
# File 'lib/task_tempest/bootstrap.rb', line 61 def bookkeeper @bookkeeper ||= begin Bookkeeper.new :storm => storm, :queue_factory => Proc.new{ settings.queue.call(logger) }, :interval => settings.bookkeeping_interval, :logger => logger end end |
#bootstrap(error_action) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/task_tempest/bootstrap.rb', line 70 def bootstrap(error_action) init_logging with_error_handling(error_action) do before_initialize init_require init_tasks init_thread_pool init_queue init_bookkeeper init_task_logging init_dispatcher after_initialize end end |
#dispatcher ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'lib/task_tempest/bootstrap.rb', line 51 def dispatcher @dispatcher ||= begin Dispatcher.new :logger => logger, :task_logger => task_logger, :queue_factory => Proc.new{ settings.queue.call(logger) }, :storm => storm, :no_message_sleep => settings. end end |
#init_bookkeeper ⇒ Object
124 125 126 127 128 |
# File 'lib/task_tempest/bootstrap.rb', line 124 def init_bookkeeper @bookkeeper and return logger.info "initializing bookkeeper" bookkeeper end |
#init_dispatcher ⇒ Object
130 131 132 133 134 |
# File 'lib/task_tempest/bootstrap.rb', line 130 def init_dispatcher @dispatcher and return logger.info "initializing dispatcher" dispatcher end |
#init_logging ⇒ Object
85 86 87 88 89 |
# File 'lib/task_tempest/bootstrap.rb', line 85 def init_logging @logger and return logger logger.info "logger initialized" end |
#init_queue ⇒ Object
114 115 116 117 118 |
# File 'lib/task_tempest/bootstrap.rb', line 114 def init_queue @queue and return logger.info "initializing queue" queue end |
#init_require ⇒ Object
120 121 122 |
# File 'lib/task_tempest/bootstrap.rb', line 120 def init_require require "task_tempest/require" end |
#init_task_logging ⇒ Object
91 92 93 94 95 |
# File 'lib/task_tempest/bootstrap.rb', line 91 def init_task_logging @task_logger and return task_logger logger.info "task logger initialized" end |
#init_tasks ⇒ Object
103 104 105 106 107 108 109 110 111 112 |
# File 'lib/task_tempest/bootstrap.rb', line 103 def init_tasks @init_tasks ||= begin logger.info "initializing tasks" Dir.glob("#{settings.task_dir}/*.rb").each do |file_path| logger.debug file_path require file_path end true end end |
#init_thread_pool ⇒ Object
97 98 99 100 101 |
# File 'lib/task_tempest/bootstrap.rb', line 97 def init_thread_pool @storm and return logger.info "initializing thread pool" storm end |
#logger ⇒ Object
8 9 10 11 12 13 14 15 16 17 |
# File 'lib/task_tempest/bootstrap.rb', line 8 def logger @logger ||= begin log_name = settings.log_name || self.class.name path = "#{settings.log_dir}/#{log_name}.log" Logger.new(path).tap do |logger| logger.formatter = LogFormatter logger.level = settings.log_level end end end |
#queue ⇒ Object
30 31 32 33 34 35 36 37 38 39 |
# File 'lib/task_tempest/bootstrap.rb', line 30 def queue @queue ||= begin case settings.queue when Proc settings.queue.call(logger) else settings.queue end end end |
#storm ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/task_tempest/bootstrap.rb', line 41 def storm @storm ||= begin ThreadStorm.new :size => settings.threads, :reraise => false, :execute_blocks => true, :timeout_method => settings.timeout_method, :timeout => settings.task_timeout end end |
#task_logger ⇒ Object
19 20 21 22 23 24 25 26 27 28 |
# File 'lib/task_tempest/bootstrap.rb', line 19 def task_logger @task_logger ||= begin log_name = settings.log_name || self.class.name path = "#{settings.log_dir}/#{log_name}.task.log" Logger.new(path).tap do |logger| logger.formatter = LogFormatter logger.level = settings.log_level end end end |