我是Web开发人员的新手,我真的很想听听您关于如何构建项目的建议。
某些背景:我正在开发一个网站,每三十分钟从另一个网站抓取20篇最受欢迎的新闻文章,并将其显示在新闻文章列表中。就像任何报纸网站一样,用户应该可以通过单击标题来访问文章,但他/她还应该可以对文章内容进行更改。如果一天之内未做任何更改,则应将原始文章保存在数据库中。
我的问题:如何将搜寻器放置在哪里以及如何将其与其他弹簧组件(例如DAO,控制器和查看文件)连接?它是批处理作业吗?由于我每隔30分钟刷新一次抓取工具,因此每次抓取工具运行时都必须截断该表吗?
由于只需要几秒钟并且不会被频繁调用,因此最好只使用预定的Spring服务。
使用@Scheduled创建Cron作业,如下所示:
@Service
public class CrawlingService {
...
@Scheduled(cron = */30 * * * *)
public void crawl() {
List<> websites = getWebsites(); // properties file, DB...
websites.stream().forEach(w => {
CrawlData data = crawl(w);
db.save(data);
});
}
}
控制器仅用于从数据库中获取数据,这与实际的搜寻器无关。对于视图,我建议使用React,Vue ...,因此请勿使用Spring或JSP。