Class: JFuture::ExecutorFactory

Inherits:
Object
  • Object
show all
Defined in:
lib/j_future/executor_factory.rb

Constant Summary collapse

@@executor_map =
{}

Class Method Summary collapse

Class Method Details

.create(core_pool_size: 20, max_pool_size: 20, keep_alive_millis: 120000, queue_size: 10, name: :default, thread_factory: DaemonThreadFactory.new) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/j_future/executor_factory.rb', line 4

def self.create(core_pool_size: 20,
      max_pool_size: 20,
      keep_alive_millis: 120000,
      queue_size: 10,
      name: :default,
      thread_factory: DaemonThreadFactory.new)

  work_queue = queue_size.to_i > 0 ?
                Java::JavaUtilConcurrent::LinkedBlockingQueue.new(queue_size.to_i) :
                Java::JavaUtilConcurrent::SynchronousQueue.new
  executor = Java::JavaUtilConcurrent::ThreadPoolExecutor.new(
                core_pool_size.to_i,
                max_pool_size.to_i,
                keep_alive_millis.to_i,
                MILLIS,
                work_queue,
                thread_factory)
  @@executor_map[name] = executor
end

.get_executor(name = :default) ⇒ Object



24
25
26
# File 'lib/j_future/executor_factory.rb', line 24

def self.get_executor(name = :default)
  @@executor_map[name]
end