使用后端安排具有状态检查和可更改频率的爬网程序作业

问题描述

我想安排爬虫的执行,其频率将基于前端中的用户输入。 这意味着,我需要在后端保持对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 (将#修改为@)