我正在使用scrapyd来安排蜘蛛,有时,根据数据量,当实例已经运行时,将启动蜘蛛。我想阻止这个。我试过写一个锁文件并检查它,但我遇到了问题,因为我项目中的每个蜘蛛都在实现锁定。这就是我所拥有的:
class MySpider(Spider):
name = "my-spider"
lockFile(name + ".lock")
...
我理解这个问题是因为我在MySpider类的实例中创建了锁,但我不知道在哪里放置它。我在想一个中间件组件,但不确定这是否有意义。想法?
答案 0 :(得分:0)
使用kivy.support
api。
listjobs.json
响应是这样的
import requests
r = requests.get("http://localhost:6800/listjobs.json?project=myproject")
您可以在此处检查蜘蛛是否已在{"status": "ok",
"pending": [{"id": "78391cc0fcaf11e1b0090800272a6d06", "spider": "spider1"}],
"running": [{"id": "422e608f9f28cef127b3d5ef93fe9399", "spider": "spider2", "start_time": "2012-09-12 10:14:03.594664"}],
"finished": [{"id": "2f16646cfcaf11e1b0090800272a6d06", "spider": "spider3", "start_time": "2012-09-12 10:14:03.594664", "end_time": "2012-09-12 10:24:03.594664"}]}
列表中运行。
资料来源:http://scrapyd.readthedocs.io/en/stable/api.html#listjobs-json