Commit 9ff23a0c authored by Vasyl Bodnaruk's avatar Vasyl Bodnaruk

Add schedule job for nonstop interval

parent ae7e329f
...@@ -77,7 +77,7 @@ class Job(models.Model): ...@@ -77,7 +77,7 @@ class Job(models.Model):
spider = models.ForeignKey(Spider, default=None, null=True) spider = models.ForeignKey(Spider, default=None, null=True)
schedule_job = models.OneToOneField(PeriodicTask, on_delete=models.SET_NULL, blank=True, null=True, default=None) schedule_job = models.OneToOneField(PeriodicTask, on_delete=models.SET_NULL, blank=True, null=True, default=None)
interval = models.CharField(max_length=5, choices=INTERVAL, default=None, null=True, blank=True) interval = models.CharField(max_length=7, choices=INTERVAL, default=None, null=True, blank=True)
count = models.IntegerField(default=1, blank=True, null=True) count = models.IntegerField(default=1, blank=True, null=True)
objects = JobManager() objects = JobManager()
......
...@@ -80,6 +80,7 @@ class NewJobCreateView(CreateView): ...@@ -80,6 +80,7 @@ class NewJobCreateView(CreateView):
return HttpResponse('Bad request', status=400) return HttpResponse('Bad request', status=400)
job = Job.objects.create(name=name, spider=spider, query=query) job = Job.objects.create(name=name, spider=spider, query=query)
interval = request.POST.get('interval') interval = request.POST.get('interval')
print('Interval', interval)
if interval: if interval:
every = request.POST.get('count') every = request.POST.get('count')
every = int(every) if every else None every = int(every) if every else None
...@@ -128,6 +129,7 @@ def schedule(interval, every): ...@@ -128,6 +129,7 @@ def schedule(interval, every):
DAY = 'day' DAY = 'day'
WEEK = 'week' WEEK = 'week'
MONTH = 'month' MONTH = 'month'
NON = 'nonstop'
scheduler = { scheduler = {
'minute': 0, 'minute': 0,
'hour': 0, 'hour': 0,
...@@ -151,4 +153,6 @@ def schedule(interval, every): ...@@ -151,4 +153,6 @@ def schedule(interval, every):
every = 1 every = 1
scheduler['day_of_month'] = 0 scheduler['day_of_month'] = 0
scheduler['month_of_year'] = '*/{}'.format(every) if every else '*' scheduler['month_of_year'] = '*/{}'.format(every) if every else '*'
if interval == NON:
scheduler['minute'] = '*/2'
return scheduler return scheduler
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