Job processing app updates

This commit is contained in:
Roberto Rosario
2012-07-30 12:55:53 -04:00
parent 75f9c47e2b
commit 30eb32f888
8 changed files with 98 additions and 58 deletions

View File

@@ -17,6 +17,8 @@ from django.utils.translation import ugettext
from django.utils.simplejson import loads, dumps
from common.models import Singleton
from clustering.models import Node
from .literals import (JOB_STATE_CHOICES, JOB_STATE_PENDING,
JOB_STATE_PROCESSING, JOB_STATE_ERROR, WORKER_STATE_CHOICES,
WORKER_STATE_RUNNING)
@@ -67,38 +69,6 @@ class JobType(object):
p.start()
class NodeManager(models.Manager):
def myself(self):
node, created = self.model.objects.get_or_create(hostname=platform.node(), defaults={'memory_usage': 100})
node.refresh()
return node
class Node(models.Model):
hostname = models.CharField(max_length=255, verbose_name=_(u'hostname'))
cpuload = models.PositiveIntegerField(blank=True, default=0, verbose_name=_(u'cpu load'))
heartbeat = models.DateTimeField(blank=True, default=datetime.datetime.now(), verbose_name=_(u'last heartbeat check'))
memory_usage = models.FloatField(blank=True, verbose_name=_(u'memory usage'))
objects = NodeManager()
def __unicode__(self):
return self.hostname
def refresh(self):
self.cpuload = psutil.cpu_percent()
self.memory_usage = psutil.phymem_usage().percent
self.save()
def save(self, *args, **kwargs):
self.heartbeat = datetime.datetime.now()
return super(Node, self).save(*args, **kwargs)
class Meta:
verbose_name = _(u'node')
verbose_name_plural = _(u'nodes')
class JobQueueManager(models.Manager):
def get_or_create(self, *args, **kwargs):
job_queue_labels[kwargs.get('name')] = kwargs.get('defaults', {}).get('label')