Add the node_heartbeat signal
This commit is contained in:
@@ -8,7 +8,7 @@ from navigation.api import bind_links
|
|||||||
from project_tools.api import register_tool
|
from project_tools.api import register_tool
|
||||||
from project_setup.api import register_setup
|
from project_setup.api import register_setup
|
||||||
|
|
||||||
from .tasks import node_heartbeat, house_keeping
|
from .tasks import send_heartbeat, house_keeping
|
||||||
from .links import tool_link, node_list, clustering_config_edit, setup_link
|
from .links import tool_link, node_list, clustering_config_edit, setup_link
|
||||||
from .models import Node, ClusteringConfig
|
from .models import Node, ClusteringConfig
|
||||||
|
|
||||||
@@ -17,7 +17,7 @@ ClusteringConfig()
|
|||||||
def add_clustering_jobs():
|
def add_clustering_jobs():
|
||||||
clustering_scheduler = LocalScheduler('clustering', _(u'Clustering'))
|
clustering_scheduler = LocalScheduler('clustering', _(u'Clustering'))
|
||||||
try:
|
try:
|
||||||
clustering_scheduler.add_interval_job('node_heartbeat', _(u'Update a node\'s properties.'), node_heartbeat, seconds=ClusteringConfig.get().node_heartbeat_interval)
|
clustering_scheduler.add_interval_job('send_heartbeat', _(u'Update a node\'s properties.'), send_heartbeat, seconds=ClusteringConfig.get().node_heartbeat_interval)
|
||||||
clustering_scheduler.add_interval_job('house_keeping', _(u'Check for unresponsive nodes in the cluster list.'), house_keeping, seconds=ClusteringConfig.get().dead_node_removal_interval)
|
clustering_scheduler.add_interval_job('house_keeping', _(u'Check for unresponsive nodes in the cluster list.'), house_keeping, seconds=ClusteringConfig.get().dead_node_removal_interval)
|
||||||
except DatabaseError:
|
except DatabaseError:
|
||||||
transaction.rollback()
|
transaction.rollback()
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
from django.dispatch import Signal
|
from django.dispatch import Signal
|
||||||
|
|
||||||
node_died = Signal(providing_args=['node'])
|
node_died = Signal(providing_args=['node'])
|
||||||
|
node_heartbeat = Signal(providing_args=['node'])
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import logging
|
|||||||
from lock_manager.decorators import simple_locking
|
from lock_manager.decorators import simple_locking
|
||||||
|
|
||||||
from .models import Node, ClusteringConfig
|
from .models import Node, ClusteringConfig
|
||||||
|
from .signals import node_heartbeat
|
||||||
|
|
||||||
LOCK_EXPIRE = 10
|
LOCK_EXPIRE = 10
|
||||||
|
|
||||||
@@ -12,10 +13,11 @@ logger = logging.getLogger(__name__)
|
|||||||
|
|
||||||
|
|
||||||
@simple_locking('node_heartbeat', 10)
|
@simple_locking('node_heartbeat', 10)
|
||||||
def node_heartbeat():
|
def send_heartbeat():
|
||||||
logger.debug('starting')
|
logger.debug('starting')
|
||||||
node = Node.objects.myself()
|
node = Node.objects.myself()
|
||||||
node.send_heartbeat()
|
node.send_heartbeat()
|
||||||
|
node_heartbeat.send(sender=node, node=node)
|
||||||
|
|
||||||
|
|
||||||
@simple_locking('house_keeping', 10)
|
@simple_locking('house_keeping', 10)
|
||||||
|
|||||||
Reference in New Issue
Block a user