Hi大家好,有一个定时执行函数的需求需要寻求一个解决方案。
Hi 大家好。
是这样的:
我用写了一个Node的爬虫,现在需要定时爬取相关网站的内容。
这么说吧,现在有个叫scrape(type)
的函数,每一个type都对应一个网站。
然后每个网站都设定了再每天不同的时间去爬取并且存到数据库。
我试了以下方法:
- 给每个函数设定一个setInterval函数。
但是不知道是不是这个scrape里面的异步操作太多了,导致了虽然能爬取,但是数据库里的数据就乱套了,不同网站的东西存得Mongodb都乱套了。
(但是单独执行
scrape(type)
是不会乱的) - 查到了一个叫node-schedule的库。 能够定时执行,非常不错。但是看了api发现好像不能可以同时对个多个函数设定不同执行时间 (或者是有而我没了解透彻?)
不知道大家有没有同样需要设定多个定时任务的需求呢,能分享一下我这种情况该怎么解决吗? 非常感谢大家。
2 回复
用 later
var schedule = require('node-schedule');
var j = schedule.scheduleJob('42 * * * *', function(){
console.log('The answer to life, the universe, and everything!');
});
你这个执行多次,每个不同参数不就行了。