Browse Source
This patch adds periodic timer to conductor service. Any new periodic tasks need to be added to magnum/service/periodic.py We add 2 default configure options to support periodic task: 'periodic_enable', default=True 'periodic_interval_max', default=60 These 2 options are for rpc_service. PS: We don't need to supervisor timers because timer itself won't have any exception, and it is not a thread, which means can not be killed. Partial-Implements: blueprint add-periodic-task Co-Authored-By: ShaoHe Feng <shaohe.feng@intel.com> Change-Id: I132d9cc89b26baf249b62b713ccd3776f0078d7dchanges/90/187090/18
5 changed files with 60 additions and 3 deletions
@ -0,0 +1,37 @@
|
||||
# Copyright (c) 2015 Intel Inc. |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
||||
# implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
from oslo_log import log |
||||
from oslo_service import periodic_task |
||||
from oslo_service import threadgroup |
||||
|
||||
LOG = log.getLogger(__name__) |
||||
|
||||
|
||||
class MagnumPeriodicTasks(periodic_task.PeriodicTasks): |
||||
'''Magnum periodic Task class |
||||
|
||||
Any periodic task job need to be added into this class |
||||
''' |
||||
pass |
||||
|
||||
|
||||
def setup(conf): |
||||
tg = threadgroup.ThreadGroup() |
||||
pt = MagnumPeriodicTasks(conf) |
||||
tg.add_dynamic_timer( |
||||
pt.run_periodic_tasks, |
||||
periodic_interval_max=conf.periodic_interval_max, |
||||
context=None) |
||||
return tg |
Loading…
Reference in new issue