This commit is contained in:
caoqianming 2020-09-07 18:33:03 +08:00
parent fc3d2dba05
commit 9982ac3323
6 changed files with 21 additions and 12 deletions

Binary file not shown.

View File

@ -1 +1 @@
9068 9120

View File

@ -1,2 +1,4 @@
@echo off
call venv\scripts\activate.bat
celery -A mysite beat -l info celery -A mysite beat -l info
pause pause

View File

@ -1,2 +1,4 @@
@echo off
call venv\scripts\activate.bat
celery -A mysite worker -l info -P eventlet celery -A mysite worker -l info -P eventlet
pause pause

View File

@ -288,38 +288,41 @@ def gridtasksend():
# for i in GridTaskSet.objects.filter(is_paused=False, last_send____gte=time2): # for i in GridTaskSet.objects.filter(is_paused=False, last_send____gte=time2):
for i in GridTaskSet.objects.filter(is_paused=False): for i in GridTaskSet.objects.filter(is_paused=False):
sendGridtask(i) sendGridtask(i)
import arrow
from dateutil.relativedelta import *
def shifttime(number, type_, time1): def shifttime(number, type_, time1):
if type_ == 'hours': if type_ == 'hours':
return time1.shift(hours=number) return time1 + relativedelta(hours=+number)
elif type_=='days': elif type_=='days':
return time1.shift(days=number) return time1 + relativedelta(days=+number)
elif type_=='weeks': elif type_=='weeks':
return time1.shift(weeks=number) return time1 + relativedelta(weeks=+number)
elif type_=='months': elif type_=='months':
return time1.shift(months=number) return time1 + relativedelta(months=+number)
elif type_=='years': elif type_=='years':
return time1.shift(years=number) return time1 + relativedelta(years=+number)
elif type_=='seconds': elif type_=='seconds':
return time1.shift(seconds=number) return time1 + relativedelta(seconds=+number)
def sendGridtask(obj): def sendGridtask(obj):
nowtime = arrow.now() nowtime = datetime.datetime.now()
schedule = obj.schedule schedule = obj.schedule
if 'interval' in schedule and schedule['interval']: if 'interval' in schedule and schedule['interval']:
number, type_ = schedule['interval'].split(',') number, type_ = schedule['interval'].split(',')
start_task = arrow.get(obj.start_task, 'Asia/Shanghai') start_task = obj.start_task
print(nowtime, start_task)
m = shifttime(number, type_, start_task) m = shifttime(number, type_, start_task)
print(m) print(m)
if nowtime >= m: if nowtime >= m:
print('ok')
newm = shifttime(number, type_, nowtime) newm = shifttime(number, type_, nowtime)
RiskActTask.objects.filter(taskset=obj, usable=1).update(usable=0) RiskActTask.objects.filter(taskset=obj, usable=1).update(usable=0)
RiskActTask.objects.create(riskact=obj.riskact,taskexpire = newm.datetime,taskadd=nowtime.datetime,istask=1,taskset=obj,tasknote=obj.note,user=obj.user) RiskActTask.objects.create(riskact=obj.riskact,taskexpire = newm,taskadd=nowtime.datetime,istask=1,taskset=obj,tasknote=obj.note,user=obj.user)
obj.start_task = nowtime obj.start_task = nowtime
obj.count = obj.count + 1 obj.count = obj.count + 1
obj.save() obj.save()
else:
print('no')
@shared_task @shared_task
def checktask(): def checktask():

View File

@ -7104,6 +7104,8 @@ def apigridtaskset(req):
obj.start_task = data['start_task'] obj.start_task = data['start_task']
obj.schedule = data['schedule'] obj.schedule = data['schedule']
obj.save() obj.save()
from .tasks import shifttime
print(shifttime(10, 'seconds', datetime.now()))
return JsonResponse({'code': 1}) return JsonResponse({'code': 1})
elif a == 'toggle': elif a == 'toggle':
obj = GridTaskSet.objects.get(id=req.GET.get('id')) obj = GridTaskSet.objects.get(id=req.GET.get('id'))