换了个域名,收录全没了(其实本来就没有多少收录)。好像有许多博客都有推送插件和 sitemap,看了一下百度站长工具说明中,主动推送是最快的。
以下示例适用于Thinkjs2.x
ThinkJS文档中 定时任务 也详细讲了如何编写一个 nodejs 定时任务,那就开始研究研究吧。 推送任务
主要依赖 request 模块,request 模块能够在 nodejs 中很方便的构造 post 和 get 请求,同时支持 http 和 https。
安装:npm install request
然后看一下推送的API文档
看起来挺简单,而且提供的有demo,对php还算熟悉,对着比葫芦画瓢吧。
在 home 模块新建了一个 cron 控制器文件用来存放所有的定时任务,然后添加一个 push 方法。
//百度推送
async pushAction() {
var request = think.require('request');
var url = 'http://data.zz.baidu.com/urls?site=hersface.com&token=xxxxxxxx';
var map = {
ispage: 1,
status: 1
};
var data = await this.model('contents').getList(map, 1, 50);
var list = [];
for (let k in data['data']) {
if (!think.isEmpty(data['data'][k]['url'])) {
list.push('http://hersface.com/page/' + data['data'][k]['url'] + '.html');
} else {
list.push('http://hersface.com/page/' + data['data'][k]['id'] + '.html');
}
}
request.post(url, {
form: list.join('\n')
}, function(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
this.end(body);
}
});
}
先在浏览器测试一下,打开 /cron/push ,控制台输出了结果
对比文档,成功! 定时任务
定时任务主要使用系统的 crontab 功能。安装:
# yum install vixie-cron
# yum install crontabs
vixie-cron软件包是cron的主程序;crontabs软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序。
如果没有意外,出来一坨代码后就安装成功了。然后 cd 到项目目录,新建 crond 文件夹编写一个简单的脚本
cd /home/wwwroot/www.hersface.com/;
node www/production.js home/cron/push;
运行测试一下,
启动 cron 服务
/sbin/service crond start
crontab -e 编写任务
0 */24 * * * /bin/sh /home/wwwroot/www.hersface.com/crontab/push.sh # 24 小时执行一次
OK!
发表评论
0 条评论