##// END OF EJS Templates
Task #961: Actualizar status de modulos ABS con subproceso...
Task #961: Actualizar status de modulos ABS con subproceso git-svn-id: http://jro-dev.igp.gob.pe/svn/jro_hard/radarsys/trunk/webapp@284 aa17d016-51d5-4e8b-934c-7b2bbb1bbe71

File last commit:

r258:0e34c33380c6
r258:0e34c33380c6
Show More
tasks.py
63 lines | 1.7 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 Scheduler para ABS, Task #717: Implementacion de start_device() y stop_device()...
r205 @task(name='task_change_beam')
Fiorella Quino
Task #769: Implementacion de Scheduler para Apuntes de ABS...
r204 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
Fiorella Quino
Task #769: Implementacion Scheduler para ABS, Task #717: Implementacion de start_device() y stop_device()...
r205 if abs_conf.device.status != 3:
return abs_conf.device.status
Fiorella Quino
Task #769: Implementacion de Scheduler para Apuntes de ABS...
r204 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)
Fiorella Quino
Task #769: Implementacion Scheduler para ABS, Task #717: Implementacion de start_device() y stop_device()...
r205 print beams_list[0]
Fiorella Quino
Task #769: Implementacion de Scheduler para Apuntes de ABS...
r204 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
Fiorella Quino
Task #961: Actualizar status de modulos ABS con subproceso...
r258
@task(name='status_absdevice')
def status_absdevice(id_conf):
abs_conf = Configuration.objects.get(pk=id_conf)
abs_conf.absmodule_status()
return