Improve Node.objects.myself to do a refresh

This commit is contained in:
Roberto Rosario
2012-07-30 09:22:37 -04:00
parent 486f983d4b
commit e0abb02df0

View File

@@ -30,7 +30,7 @@ class Job(object):
close_connection()
# Run sync or launch async subprocess
# OR launch 2 processes: monitor & actual process
node = Node.objects.get_myself()
node = Node.objects.myself()
worker = Worker.objects.create(node=node, name=u'%s-%d' % (node.hostname, os.getpid()))
try:
close_connection()
@@ -63,12 +63,12 @@ class JobType(object):
job_queue_item.save()
p = Process(target=Job, args=(self.function, job_queue_item,))
p.start()
#p.join()
class NodeManager(models.Manager):
def get_myself(self):
return self.model.objects.get(hostname=platform.node())
def myself(self):
node = self.model.objects.get_or_create(hostname=platform.node(), defaults={'memory_usage': 100})
node.refresh()
class Node(models.Model):
@@ -81,6 +81,11 @@ class Node(models.Model):
def __unicode__(self):
return self.hostname
def refresh(self):
node.cpuload = psutil.cpu_percent()
node.memory_usage = psutil.phymem_usage().percent
node.save()
def save(self, *args, **kwargs):
self.heartbeat = datetime.datetime.now()