generated from Wang-Bioinformatics-Lab/Flask_Website_Basic_Template
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtasks.py
40 lines (29 loc) · 1020 Bytes
/
tasks.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from celery import Celery
import glob
import sys
import os
celery_instance = Celery('tasks', backend='redis://redu-gnps2-redis', broker='pyamqp://guest@redu-gnps2-rabbitmq//', )
@celery_instance.task(time_limit=60)
def task_computeheartbeat():
print("UP", file=sys.stderr, flush=True)
return "Up"
@celery_instance.task(time_limit=84600)
def tasks_generate_metadata():
print("UP", file=sys.stderr, flush=True)
cmd = "cd /app/workflows/PublicDataset_ReDU_Metadata_Workflow && \
nextflow run ./nf_workflow.nf \
--old_redu ./nf_output/merged_metadata.tsv \
-c ./nextflow.config > nextflowstdout.log"
os.system(cmd)
return "Up"
# TODO: Make this update run every day
celery_instance.conf.beat_schedule = {
"cleanup": {
"task": "tasks.tasks_generate_metadata",
"schedule": 86400
}
}
celery_instance.conf.task_routes = {
'tasks.task_computeheartbeat': {'queue': 'worker'},
'tasks.tasks_generate_metadata': {'queue': 'worker'},
}