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()
 |