##// END OF EJS Templates
Task #769: Implementacion de Scheduler para Apuntes de ABS...
Task #769: Implementacion de Scheduler para Apuntes de ABS git-svn-id: http://jro-dev.igp.gob.pe/svn/jro_hard/radarsys/trunk/webapp@227 aa17d016-51d5-4e8b-934c-7b2bbb1bbe71

File last commit:

r204:9b1b28cee320
r204:9b1b28cee320
Show More
tasks.py
63 lines | 1.6 KiB | text/x-python | PythonLexer
Fiorella Quino
Starting work with celery...
r202 from __future__ import absolute_import
Fiorella Quino
Task #769: Implementacion de Scheduler para Apuntes de ABS...
r204 from apps.main.models import Configuration
from .models import ABSBeam
import json
from datetime import timedelta, datetime
from celery.task import task
Fiorella Quino
Starting work with celery...
r202
Fiorella Quino
Task #769: Implementacion de Scheduler para Apuntes de ABS...
r204 """
@task
def beam_task(id_conf):
Fiorella Quino
Starting work with celery...
r202
Fiorella Quino
Task #769: Implementacion de Scheduler para Apuntes de ABS...
r204 abs_conf = Configuration.objects.get(pk=id_conf)
Fiorella Quino
Starting work with celery...
r202
Fiorella Quino
Task #769: Implementacion de Scheduler para Apuntes de ABS...
r204 task_change_beam(abs_conf.pk)
Fiorella Quino
Starting work with celery...
r202
Fiorella Quino
Task #769: Implementacion de Scheduler para Apuntes de ABS...
r204 return task_change_beam(abs_conf.pk)
Fiorella Quino
Starting work with celery...
r202
Fiorella Quino
Task #769: Implementacion de Scheduler para Apuntes de ABS...
r204 """
Fiorella Quino
Starting work with celery...
r202
Fiorella Quino
Task #769: Implementacion de Scheduler para Apuntes de ABS...
r204 @task
def task_change_beam(id_conf):
Fiorella Quino
Starting work with celery...
r202
Fiorella Quino
Task #769: Implementacion de Scheduler para Apuntes de ABS...
r204 abs_conf = Configuration.objects.get(pk=id_conf)
beams_list = ABSBeam.objects.filter(abs_conf=abs_conf)
active_beam = json.loads(abs_conf.active_beam)
run_every = timedelta(seconds=abs_conf.operation_value)
now = datetime.utcnow()
date = now + run_every
if abs_conf.operation_mode == 0: #Manual Mode
return 1
if active_beam:
current_beam = ABSBeam.objects.get(pk=active_beam['active_beam'])
i=0
for beam in beams_list:
if beam == current_beam:
i+=1
break
i+=1
if i < len(beams_list):
next_beam = beams_list[i]
abs_conf.send_beam_num(i+1)
next_beam.set_as_activebeam()
task = task_change_beam.apply_async((abs_conf.pk,), eta=date)
print next_beam
else:
abs_conf.send_beam_num(1)
beams_list[0].set_as_activebeam()
task = task_change_beam.apply_async((abs_conf.pk,), eta=date)
print next_beam
i=0
else:
abs_conf.send_beam_num(1)
beams_list[0].set_as_activebeam()
task = task_change_beam.apply_async((abs_conf.pk,), eta=date)
return 2