21 lines
670 B
Python
21 lines
670 B
Python
from __future__ import absolute_import, unicode_literals
|
|
from celery import shared_task
|
|
from django.utils import timezone
|
|
from apps.bi.models import Dataset, DatasetRecord
|
|
from apps.bi.services import exec_dataset
|
|
import json
|
|
from apps.utils.tools import MyJSONEncoder
|
|
|
|
@shared_task()
|
|
def exec_dataset_and_store(code: str, query: str = ''):
|
|
dt = Dataset.objects.get(code=code)
|
|
dtr = DatasetRecord()
|
|
dtr.timex = timezone.now()
|
|
dtr.dataset = dt
|
|
squery = {}
|
|
if query:
|
|
squery = json.loads(query)
|
|
dtr.full_sql, dtr.result = exec_dataset(dt, squery)
|
|
dtr.result = json.loads(json.dumps(dtr.result, cls=MyJSONEncoder))
|
|
dtr.save()
|