1
0
mirror of https://github.com/scrapy/scrapy.git synced 2025-02-23 18:44:05 +00:00

Add listjobs.json to Scrapyd API

You can use listjobs.json with project=<projectname> to get a list of projects that are running currently.
It returns a list of jobs with spidername and job-id.

Signed-off-by: Jochen Maes <jochen.maes@sejo.be>
---
 scrapyd/webservice.py |    9 +++++++++
 scrapyd/website.py    |    1 +
 2 files changed, 10 insertions(+), 0 deletions(-)
This commit is contained in:
Jochen Maes 2011-03-09 14:22:10 -02:00
parent 99033d91c3
commit 47a7f154ab
2 changed files with 10 additions and 0 deletions

View File

@ -87,3 +87,12 @@ class DeleteVersion(DeleteProject):
self._delete_version(project, version) self._delete_version(project, version)
return {"status": "ok"} return {"status": "ok"}
class ListJobs(WsResource):
def render_POST(self, txrequest):
project = txrequest.args['project'][0]
spiders = self.root.launcher.processes.values()
jlist = list()
for s in spiders:
if project == s.project:
jlist.append({"job": {"id":s.job, "spider": s.spider}})
return {"status":"ok", "jobs": jlist}

View File

@ -22,6 +22,7 @@ class Root(resource.Resource):
self.putChild('listspiders.json', webservice.ListSpiders(self)) self.putChild('listspiders.json', webservice.ListSpiders(self))
self.putChild('delproject.json', webservice.DeleteProject(self)) self.putChild('delproject.json', webservice.DeleteProject(self))
self.putChild('delversion.json', webservice.DeleteVersion(self)) self.putChild('delversion.json', webservice.DeleteVersion(self))
self.putChild('listjobs.json', webservice.ListJobs(self))
self.putChild('logs', static.File(logsdir, 'text/plain')) self.putChild('logs', static.File(logsdir, 'text/plain'))
self.putChild('procmon', ProcessMonitor(self)) self.putChild('procmon', ProcessMonitor(self))
self.update_projects() self.update_projects()