问题描述
我想安排爬虫的执行,其频率将基于前端中的用户输入。
这意味着,我需要在后端保持对Scrapy执行(scrapy crawl xbot
)的控制,并相应地更改调度程序的频率。
而且,根据搜寻器执行的状态,我需要每天运行一些函数来更新数据库。
我已经使用FastAPI构建了一个MVP,但是目前该scrapy作业正在docker容器中以固定的频率独立运行,并写入数据库。在另一个容器中运行的后端对数据库进行CRUD。
如果我使用Shell脚本运行scrapy命令和python函数命令的cron作业,如何修改cron作业频率? 如果我使用python scheduler / crontab软件包,如何根据用户输入修改频率,并检查scrapy作业的执行状态?
任何建议都会有所帮助!
ETA:我正计划通过API公开crawler命令。后端将包含调度程序模块,该模块将调用API,然后同步调用相关的后台作业。不依赖搜寻器执行的其他作业将独立运行。 现在唯一的问题是修改用户输入的频率。
也许我可以将其限制为自定义频率,例如“在特定日期和时间一次”,“在X时间的每个备用日”,“在X时间的每天”,“在X时间的Y日的每周”,...等等,并为每个函数编写特定的功能。例如schedule.every().day.at(X_time).do(job)
,如果...其他(7个比较)如if 'thursday': schedule.every().thursday.at(X_time).do(job)
,...
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)