Commit 41ec7f0a authored by Vasyl Bodnaruk's avatar Vasyl Bodnaruk

add functional for make periodic task

parent f8cfc1f2
from django_celery_beat.models import PeriodicTask, CrontabSchedule
schedule, _ = CrontabSchedule.objects.get_or_create(
minute='1',
hour='*',
day_of_week='*',
day_of_month='*',
month_of_year='*',
)
PeriodicTask.objects.create(
crontab=schedule,
name='Importing contacts',
task='scraper.tasks.add',
args=[23, 27]
)
from __future__ import absolute_import
from django_celery_beat.models import PeriodicTask, CrontabSchedule
def make_data(data):
every = lambda x: '*/{}'.format(x)
result = {
'minute': data.get('minute', 0),
'hour': data.get('hour', 0),
'day_of_week': data.get('day_of_week', '*'),
'day_of_month': data.get('day_of_month', '*'),
'month_of_year': data.get('month_of_year', '*')
}
if data.get('every'):
result = {k: every(v) for k, v in result.items() if k not in ('minute', 'hour')}
return result
def make_periodic_task(job_id, data):
schedule, _ = CrontabSchedule.objects.get_or_create(**data)
PeriodicTask.objects.create(
crontab=schedule,
name='Importing contacts',
task='scraper.tasks.run_job',
args=[job_id]
)
from django.test import TestCase from django.test import TestCase
# Create your tests here. # Create your tests here.
...@@ -7,6 +7,7 @@ from django.utils.decorators import method_decorator ...@@ -7,6 +7,7 @@ from django.utils.decorators import method_decorator
from .models import Spider, Job from .models import Spider, Job
from .service import Service from .service import Service
from .periodic_task_creator import test
@method_decorator(login_required, name='post') @method_decorator(login_required, name='post')
...@@ -68,6 +69,9 @@ class NewJobCreateView(CreateView): ...@@ -68,6 +69,9 @@ class NewJobCreateView(CreateView):
name = request.POST.get('name') name = request.POST.get('name')
spider = Spider.objects.get(pk=request.POST.get('spider')) spider = Spider.objects.get(pk=request.POST.get('spider'))
query = request.POST.get('query') query = request.POST.get('query')
if query == 'j':
query = ''
test()
Job.objects.create(name=name, spider=spider, query=query) Job.objects.create(name=name, spider=spider, query=query)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment