tasks.py
45 lines
| 866 B
| text/x-python
|
PythonLexer
|
r196 | from __future__ import absolute_import | ||
from celery import task | ||||
|
r253 | from datetime import timedelta, datetime | ||
|
r196 | |||
from .models import Experiment | ||||
@task | ||||
def task_start(id_exp): | ||||
|
r253 | |||
|
r196 | exp = Experiment.objects.get(pk=id_exp) | ||
|
r253 | |||
|
r196 | return exp.start() | ||
|
r253 | |||
|
r196 | @task | ||
def task_stop(id_exp): | ||||
|
r253 | |||
|
r196 | exp = Experiment.objects.get(pk=id_exp) | ||
|
r253 | |||
|
r196 | return exp.stop() | ||
|
r306 | def kill_tasks(): | ||
i = task.control.inspect() | ||||
tasks = i.scheduled() | ||||
print tasks | ||||
#if tasks: | ||||
# print dir(tasks[0]) | ||||
|
r253 | |||
#Task to get status | ||||
@task | ||||
def task_status(id_exp): | ||||
exp = Experiment.objects.get(pk=id_exp) | ||||
if exp.status==2: | ||||
run_every = timedelta(minutes=1) | ||||
now = datetime.utcnow() | ||||
date = now + run_every | ||||
task_status.apply_async((id_exp,), eta=date) | ||||
print "Monitoring..." | ||||
exp.get_status() | ||||
return exp.status | ||||
else: | ||||
return exp.status | ||||