##// END OF EJS Templates
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2

File last commit:

r343:f3a35356b00a
r343:f3a35356b00a
Show More
tasks.py
78 lines | 2.1 KiB | text/x-python | PythonLexer
Juan C. Espinoza
Add scheduler for campaigns/experiments using celery #718, fix views and models bugs...
r196 from __future__ import absolute_import
Fix mix experiment and scheduler
r311 from radarsys.celery import app
Juan C. Espinoza
Add scheduler for campaigns/experiments using celery #718, fix views and models bugs...
r196 from celery import task
Fiorella Quino
task for monitoring devices status from experiment...
r253 from datetime import timedelta, datetime
Juan C. Espinoza
Add scheduler for campaigns/experiments using celery #718, fix views and models bugs...
r196
from .models import Experiment
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 from celery import Celery
from celery.utils.log import get_task_logger
from django.utils import timezone
logger = get_task_logger(__name__)
Juan C. Espinoza
Add scheduler for campaigns/experiments using celery #718, fix views and models bugs...
r196
@task
def task_start(id_exp):
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 exp = Experiment.objects.get(pk=id_exp)
Fix mix experiment and scheduler
r311 status = exp.status
if exp.status == 2:
print('Experiment {} already running start task not executed'.format(exp))
return 2
if status == 3:
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 now = datetime.now()
Fix mix experiment and scheduler
r311 start = datetime.combine(now.date(), exp.start_time)
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 end = datetime.combine(now.date(), exp.end_time)
print(now)
print(start)
print(end)
Fix mix experiment and scheduler
r311 if end < start:
end += timedelta(1)
try:
print('Starting exp:{}'.format(exp))
exp.status = exp.start()
except:
print('Error')
exp.status = 0
if exp.status == 2:
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 task = task_stop.apply_async((id_exp,),eta=end) #Antiguo eta=end+timedelta(hours=5))
Fix mix experiment and scheduler
r311 exp.task = task.id
exp.save()
return exp.status
Fiorella Quino
task for monitoring devices status from experiment...
r253
Juan C. Espinoza
Add scheduler for campaigns/experiments using celery #718, fix views and models bugs...
r196 @task
def task_stop(id_exp):
exp = Experiment.objects.get(pk=id_exp)
Fix mix experiment and scheduler
r311 if exp.status == 2:
try:
print('Stopping exp:{}'.format(exp))
exp.status = exp.stop()
except:
print('Error')
exp.status = 0
Fiorella Quino
task for monitoring devices status from experiment...
r253
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 now = datetime.now()
start = datetime.combine(now.date()+timedelta(1), exp.start_time)
task = task_start.apply_async((id_exp, ), eta=start) #Antiguo eta=start+timedelta(hours=5))
exp.task = task.id
Fix mix experiment and scheduler
r311 exp.status = 3
exp.save()
return exp.status
Fiorella Quino
task for monitoring devices status from experiment...
r253
#Task to get status
@task
def task_status(id_exp):
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 print ("task status"+str(id_exp))
Fiorella Quino
task for monitoring devices status from experiment...
r253 exp = Experiment.objects.get(pk=id_exp)
if exp.status==2:
run_every = timedelta(minutes=1)
gonzalesluisfrancisco
Version con fecha de campanhas corregida pero falta lanzar las tareas e celery rev2
r343 now = datetime.utcnow()
date = now + run_every
Fiorella Quino
task for monitoring devices status from experiment...
r253 task_status.apply_async((id_exp,), eta=date)
Nueva plantilla, prueba comunicacion y nuevos campos ddsrest
r335 print ("Monitoring...")
Fiorella Quino
task for monitoring devices status from experiment...
r253 exp.get_status()
return exp.status
else:
return exp.status