Switch to Futurist library for asynchronous execution and periodic tasks
This change switches the conductor to using Futurist library executor and
periodic tasks worker instead of oslo.service periodic tasks. This allows
running periodic tasks in parallel and relying on more standard interfaces
(futures, executors) when dealing with asynchronous execution.
A green thread executor is used instead of using an eventlet green pool
directly. The maximum number of workers is taken from the existing
workers_pool_size configuration option, and no tasks are allowed
to be enqueued to mimic the previous behaviour (might be lifted later).
The periodic tasks worker is using the same executor, and its main loop thread
is also running on it. For this reason minimum value for workers_pool_size
is now 3: periodic task main loop, keep alive thread and at least one thread for
other tasks. A special decorator for driver-periodic tasks is now deprecated,
as the generic decorator can be used there as well.
Reviewed: https:/ /review. openstack. org/264720 /git.openstack. org/cgit/ openstack/ ironic/ commit/ ?id=3429e3824c0 60071e59a117c19 c95659c78e4c8b
Committed: https:/
Submitter: Jenkins
Branch: master
commit 3429e3824c06007 1e59a117c19c956 59c78e4c8b
Author: Dmitry Tantsur <email address hidden>
Date: Thu Jan 7 12:12:59 2016 +0100
Switch to Futurist library for asynchronous execution and periodic tasks
This change switches the conductor to using Futurist library executor and
periodic tasks worker instead of oslo.service periodic tasks. This allows
running periodic tasks in parallel and relying on more standard interfaces
(futures, executors) when dealing with asynchronous execution.
A green thread executor is used instead of using an eventlet green pool pool_size configuration option, and no tasks are allowed
directly. The maximum number of workers is taken from the existing
workers_
to be enqueued to mimic the previous behaviour (might be lifted later).
The periodic tasks worker is using the same executor, and its main loop thread
is also running on it. For this reason minimum value for workers_pool_size
is now 3: periodic task main loop, keep alive thread and at least one thread for
other tasks. A special decorator for driver-periodic tasks is now deprecated,
as the generic decorator can be used there as well.
Closes-Bug: #1526277 05b6c521bacfef2 993b16ce1ee
Change-Id: I57bf7cebfb6db8