Commit 0bc69a73 authored by Vasyl Bodnaruk's avatar Vasyl Bodnaruk

for test server

parent a860c292
...@@ -70,3 +70,13 @@ class Job(models.Model): ...@@ -70,3 +70,13 @@ class Job(models.Model):
def __str__(self): def __str__(self):
return self.name return self.name
def json(self):
return {
'name': self.name,
'uuid': self.job_uuid,
'create_time': self.create_time,
'start_time': self.start_time,
'end_time': self.end_time,
'status': self.status
}
...@@ -21,23 +21,26 @@ class Service: ...@@ -21,23 +21,26 @@ class Service:
def run_job(self, job): def run_job(self, job):
job = Job.objects.get(pk=job) job = Job.objects.get(pk=job)
uuid = self.api.schedule('exa', job.spider.sp_name) # uuid = self.api.schedule('exa', job.spider.sp_name)
job.job_uuid = uuid # job.job_uuid = uuid
job.start_time = datetime.now() job.start_time = datetime.now()
job.status = 'RUN' job.status = 'RUN'
job.save() job.save()
return job.json()
def cancel_job(self, job): def cancel_job(self, job):
job = Job.objects.get(pk=job) job = Job.objects.get(pk=job)
self.api.cancel('exa', job.job_uuid) # self.api.cancel('exa', job.job_uuid)
job.end_time = datetime.now() job.end_time = datetime.now()
job.status = 'FIN' job.status = 'FIN'
job.save() job.save()
return job.json()
def delete_job(self, job): def delete_job(self, job):
job = Job.objects.get(pk=job) job = Job.objects.get(pk=job)
job.status = 'DEL' job.status = 'DEL'
job.save() job.save()
return job.json()
def get_log(self, job): def get_log(self, job):
job = Job.objects.get(pk=job) job = Job.objects.get(pk=job)
......
from django.shortcuts import render, HttpResponseRedirect, reverse, HttpResponse from django.shortcuts import render, HttpResponseRedirect, reverse, HttpResponse
from django.http import JsonResponse
from django.views.generic import ListView, CreateView from django.views.generic import ListView, CreateView
from .models import Spider, Job from .models import Spider, Job
...@@ -24,22 +25,25 @@ class JobListView(ListView): ...@@ -24,22 +25,25 @@ class JobListView(ListView):
return render(request, self.template_name, {'jobs': jobs}) return render(request, self.template_name, {'jobs': jobs})
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
action = request.POST.get('action') if request.is_ajax():
job_id = request.POST.get('job_id') action = request.POST.get('action')
job_id = request.POST.get('id')
self._logic(action, job_id)
def _logic(self, action, job_id):
if action == 'run': if action == 'run':
self.service.run_job(job_id) return JsonResponse(self.service.run_job(job_id))
if action == 'cancel': if action == 'cancel':
self.service.cancel_job(job_id) return JsonResponse(self.service.cancel_job(job_id))
if action == 'update': if action == 'update':
self.service.update_jobs_status() self.service.update_jobs_status()
if action == 'delete': if action == 'delete':
self.service.delete_job(job_id) return JsonResponse(self.service.delete_job(job_id))
if action == 'new': if action == 'new':
return HttpResponseRedirect(reverse('new_job')) return HttpResponseRedirect(reverse('new_job'))
if action == 'log': if action == 'log':
log = self.service.get_log(job_id) log = self.service.get_log(job_id)
return HttpResponse(log, content_type='text/plain') return HttpResponse(log, content_type='text/plain')
return HttpResponseRedirect(reverse('job_list')) return HttpResponseRedirect(reverse('job_list'))
......
...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
</thead> </thead>
<tbody> <tbody>
{% for i in jobs.pending %} {% for i in jobs.pending %}
<tr id="pending-{{ i.id }}"> <tr id="{{ i.id }}">
<td data-col="job">{{ i.name }}</td> <td data-col="job">{{ i.name }}</td>
<td data-col="uuid">{{ i.job_uuid }}</td> <td data-col="uuid">{{ i.job_uuid }}</td>
<td data-col="created-date">{{ i.create_time }}</td> <td data-col="created-date">{{ i.create_time }}</td>
......
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