Commit f8cfc1f2 authored by Vasyl Bodnaruk's avatar Vasyl Bodnaruk

add beat scheduler for work with periodic task

parent cdee0b00
...@@ -39,6 +39,7 @@ INSTALLED_APPS = [ ...@@ -39,6 +39,7 @@ INSTALLED_APPS = [
'django.contrib.staticfiles', 'django.contrib.staticfiles',
'el_pagination', 'el_pagination',
'corsheaders', 'corsheaders',
'django_celery_beat',
'webapp.apps.WebappConfig', 'webapp.apps.WebappConfig',
'main.apps.MainConfig', 'main.apps.MainConfig',
......
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, unicode_literals from __future__ import absolute_import, unicode_literals
from celery import shared_task from celery import shared_task
from .service import Service
@shared_task @shared_task
def add(x, y): def add(x, y):
print('ADDDDDDDDDDDDD')
return x + y return x + y
@shared_task @shared_task
def mul(x, y): def run_job(job):
return x * y api = Service()
print('RUN spider')
api.run_job(job)
@shared_task return 'spider was running'
def xsum(numbers):
return sum(numbers)
import json
from django.shortcuts import render, HttpResponseRedirect, reverse, HttpResponse from django.shortcuts import render, HttpResponseRedirect, reverse, HttpResponse
from django.http import JsonResponse from django.http import JsonResponse
from django.views.generic import ListView, CreateView, UpdateView from django.views.generic import ListView, CreateView, UpdateView
...@@ -67,6 +68,7 @@ class NewJobCreateView(CreateView): ...@@ -67,6 +68,7 @@ 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')
Job.objects.create(name=name, spider=spider, query=query) Job.objects.create(name=name, spider=spider, query=query)
return HttpResponseRedirect(reverse('job_list')) return HttpResponseRedirect(reverse('job_list'))
......
...@@ -10,4 +10,5 @@ Django==1.11.1 ...@@ -10,4 +10,5 @@ Django==1.11.1
django-el-pagination==3.1.0 django-el-pagination==3.1.0
django-cors-headers==2.1.0 django-cors-headers==2.1.0
celery==4.0.2 celery==4.0.2
flower==0.9.2 flower==0.9.2
\ No newline at end of file django-celery-beat==1.0.1
\ No newline at end of file
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