diff --git a/celerybeat-schedule.dat b/celerybeat-schedule.dat index eed4fbf2..c1749ee6 100644 Binary files a/celerybeat-schedule.dat and b/celerybeat-schedule.dat differ diff --git a/celerybeat.pid b/celerybeat.pid index f1981b15..2a4ff1b0 100644 --- a/celerybeat.pid +++ b/celerybeat.pid @@ -1 +1 @@ -9068 +9120 diff --git a/s_celerybeat.bat b/s_celerybeat.bat index 7e7f2d79..86ff4990 100644 --- a/s_celerybeat.bat +++ b/s_celerybeat.bat @@ -1,2 +1,4 @@ +@echo off +call venv\scripts\activate.bat celery -A mysite beat -l info pause \ No newline at end of file diff --git a/s_celeryworker.bat b/s_celeryworker.bat index 88184d57..b658186c 100644 --- a/s_celeryworker.bat +++ b/s_celeryworker.bat @@ -1,2 +1,4 @@ +@echo off +call venv\scripts\activate.bat celery -A mysite worker -l info -P eventlet pause \ No newline at end of file diff --git a/safesite/tasks.py b/safesite/tasks.py index 4d3b63c3..d5f1827c 100644 --- a/safesite/tasks.py +++ b/safesite/tasks.py @@ -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): sendGridtask(i) -import arrow + +from dateutil.relativedelta import * def shifttime(number, type_, time1): if type_ == 'hours': - return time1.shift(hours=number) + return time1 + relativedelta(hours=+number) elif type_=='days': - return time1.shift(days=number) + return time1 + relativedelta(days=+number) elif type_=='weeks': - return time1.shift(weeks=number) + return time1 + relativedelta(weeks=+number) elif type_=='months': - return time1.shift(months=number) + return time1 + relativedelta(months=+number) elif type_=='years': - return time1.shift(years=number) + return time1 + relativedelta(years=+number) elif type_=='seconds': - return time1.shift(seconds=number) + return time1 + relativedelta(seconds=+number) def sendGridtask(obj): - nowtime = arrow.now() + nowtime = datetime.datetime.now() schedule = obj.schedule if 'interval' in schedule and schedule['interval']: number, type_ = schedule['interval'].split(',') - start_task = arrow.get(obj.start_task, 'Asia/Shanghai') - print(nowtime, start_task) + start_task = obj.start_task m = shifttime(number, type_, start_task) print(m) if nowtime >= m: + print('ok') newm = shifttime(number, type_, nowtime) 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.count = obj.count + 1 obj.save() + else: + print('no') @shared_task def checktask(): diff --git a/safesite/views.py b/safesite/views.py index 56990305..a5466e6b 100644 --- a/safesite/views.py +++ b/safesite/views.py @@ -7104,6 +7104,8 @@ def apigridtaskset(req): obj.start_task = data['start_task'] obj.schedule = data['schedule'] obj.save() + from .tasks import shifttime + print(shifttime(10, 'seconds', datetime.now())) return JsonResponse({'code': 1}) elif a == 'toggle': obj = GridTaskSet.objects.get(id=req.GET.get('id'))