java 单机接口限流处理方案
337
2022-06-23
ScrapydManage
GitHub地址:https://github.com/kanadeblisst/ScrapydManage
码云:https://gitee.com/kanadeblisst/ScrapydManage
主机管理界面
添加主机
添加主机顾名思义就是添加scrapyd的api地址,例如127.0.0.1:6800。不理解scrapyd怎么使用的可以参考官方文档:https://scrapyd.readthedocs.io/en/stable/index.html。其实很简单,pip install scrapyd,然后命令行输入scrapyd,或者先在当前目录创建scrapyd.conf,修改一些配置参数然后在输入scrapyd运行。
【参考配置】:
[scrapyd]
eggs_dir = D:/scrapyd/eggs
logs_dir = D:/scrapyd/logs
items_dir = D:/scrapyd/items
jobs_to_keep = 5
dbs_dir = D:/scrapyd/dbs
max_proc = 0
max_proc_per_cpu = 4
finished_to_keep = 100
poll_interval = 5.0
bind_address = 0.0.0.0
http_port = 6800
debug = off
runner = scrapyd.runner
application = scrapyd.app.application
launcher = scrapyd.launcher.Launcher
webroot = scrapyd.website.Root
node_name = localhost
[services]
schedule.json = scrapyd.webservice.Schedule
cancel.json = scrapyd.webservice.Cancel
addversion.json = scrapyd.webservice.AddVersion
listprojects.json = scrapyd.webservice.ListProjects
listversions.json = scrapyd.webservice.ListVersions
listspiders.json = scrapyd.webservice.ListSpiders
delproject.json = scrapyd.webservice.DeleteProject
delversion.json = scrapyd.webservice.DeleteVersion
listjobs.json = scrapyd.webservice.ListJobs
daemonstatus.json = scrapyd.webservice.DaemonStatus
其中注意修改三个目录eggs_dir 、logs_dir 、dbs_dir,其他的看情况自己修改。
刷新列表状态
只是向所有主机发起请求更新状态和节点名两栏,看第一张图应该很好理解
同步所有项目到所有主机
顾名思义、默认版本号(version)为当前时间戳
查看任务队列
listjobs这个接口,返回scrapyd服务端当前pending(待抓取)、running(正抓取)、finished(已抓取)的相关信息
删除主机
顾名思义
项目管理界面
项目管理主要是读取当前exe文件同级目录下projects目录内的文件夹,有点绕口大概就这意思吧。
右键有三个功能:刷新项目列表、同步所有项目到、同步到(需要右键某个项目)
创建任务界面
运行时间可以是如图的字符串格式,表示在指定时间运行;也可以是数字(单位秒),在指定秒数之后运行。时间间隔表示是否重复运行爬虫,重复时间间隔,只支持数字(单位秒),比如一天运行一次就填86400。
因为需要等服务器返回数据,即使用多线程也要等返回值,所以选择主机或者项目后会有卡顿,卡顿时间看返回延迟,本地的话很快。
如果需要什么其他功能的话可以自行开发,源码已经有了,二次开发应该不难,aardio语法和其他语言类似,我也了解没多久很简单就能用。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~