Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
E
esi-table-data
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
esi-data-scrapping
esi-table-data
Commits
3dd19195
Commit
3dd19195
authored
Jun 16, 2017
by
Vasyl Bodnaruk
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add functional for run Job
parent
0326e582
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
14 deletions
+19
-14
models.py
esi/scraper/models.py
+1
-1
service.py
esi/scraper/service.py
+16
-3
views.py
esi/scraper/views.py
+2
-10
No files found.
esi/scraper/models.py
View file @
3dd19195
...
...
@@ -59,7 +59,7 @@ class Job(models.Model):
)
name
=
models
.
CharField
(
max_length
=
50
,
default
=
None
,
null
=
True
)
job_id
=
models
.
CharField
(
max_length
=
50
,
default
=
None
,
null
=
True
)
job_
uu
id
=
models
.
CharField
(
max_length
=
50
,
default
=
None
,
null
=
True
)
create_time
=
models
.
DateTimeField
(
default
=
datetime
.
now
)
start_time
=
models
.
DateTimeField
(
default
=
None
,
null
=
True
)
end_time
=
models
.
DateTimeField
(
default
=
None
,
null
=
True
)
...
...
esi/scraper/service.py
View file @
3dd19195
from
datetime
import
datetime
from
scrapyd_api
import
ScrapydAPI
from
.models
import
Spider
,
Job
class
Service
:
def
update_jobs_status
(
self
,
jobs
):
def
__init__
(
self
):
self
.
api
=
ScrapydAPI
()
def
update_jobs_status
(
self
):
try
:
jobs
=
self
.
api
.
list_jobs
(
'exa'
)
finished
=
jobs
.
get
(
'finished'
)
if
finished
:
for
i
in
finished
:
Job
.
objects
.
get
(
job_id
=
i
[
'id'
])
.
update
(
status
=
'FIN'
,
end_time
=
i
[
'end_time'
])
Job
.
objects
.
get
(
job_
uu
id
=
i
[
'id'
])
.
update
(
status
=
'FIN'
,
end_time
=
i
[
'end_time'
])
running
=
jobs
.
get
(
'running'
)
if
running
:
for
i
in
running
:
Job
.
objects
.
get
(
job_id
=
i
[
'id'
])
.
update
(
status
=
'RUN'
)
Job
.
objects
.
get
(
job_
uu
id
=
i
[
'id'
])
.
update
(
status
=
'RUN'
)
except
:
pass
def
run_job
(
self
,
job
):
job
=
Job
.
objects
.
get
(
pk
=
job
)
print
(
job
.
spider
.
sp_name
)
uuid
=
self
.
api
.
schedule
(
'exa'
,
job
.
spider
.
sp_name
)
job
.
job_uuid
=
uuid
job
.
start_time
=
datetime
.
now
()
job
.
status
=
'RUN'
job
.
save
()
print
(
"job is running"
)
esi/scraper/views.py
View file @
3dd19195
from
django.shortcuts
import
render
,
HttpResponseRedirect
,
reverse
,
HttpResponse
from
django.views.generic
import
ListView
,
CreateView
from
scrapyd_api
import
ScrapydAPI
from
.models
import
Spider
,
Job
from
.service
import
Service
...
...
@@ -11,7 +10,6 @@ class JobListView(ListView):
model
=
Job
def
__init__
(
self
):
self
.
client
=
ScrapydAPI
()
self
.
service
=
Service
()
super
(
JobListView
,
self
)
.
__init__
()
...
...
@@ -28,13 +26,11 @@ class JobListView(ListView):
action
=
request
.
POST
.
get
(
'action'
)
job_id
=
request
.
POST
.
get
(
'job_id'
)
if
action
==
'run'
:
print
(
job_id
)
# job = Job.objects.get(pk=job_id)
self
.
service
.
run_job
(
job_id
)
if
action
==
'cancel'
:
pass
if
action
==
'update'
:
jobs
=
self
.
client
.
list_jobs
(
'exa'
)
self
.
service
.
update_jobs_status
(
jobs
)
self
.
service
.
update_jobs_status
()
if
action
==
'new'
:
return
HttpResponseRedirect
(
reverse
(
'new_job'
))
...
...
@@ -44,10 +40,6 @@ class JobListView(ListView):
class
NewJobCreateView
(
CreateView
):
template_name
=
'new_job.html'
def
__init__
(
self
):
self
.
client
=
ScrapydAPI
()
super
(
NewJobCreateView
,
self
)
.
__init__
()
def
get
(
self
,
request
,
*
args
,
**
kwargs
):
spiders
=
Spider
.
objects
.
all
()
return
render
(
request
,
self
.
template_name
,
{
'spiders'
:
spiders
})
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment