码迷,mamicode.com
首页 > 系统相关 > 详细

linux定时任务访问页面代替quartz集群

时间:2014-09-10 12:33:20      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:style   http   color   os   io   使用   ar   文件   数据   

业务背景:
web中经常有业务需要定时执行,但是在集群环境中,如果多个服务器中的定时任务同时开启的话会导致数据库挂掉,
实际应该中只有一个定时任务访问数据库。
怎么解决这一问题呢:
1、多服务器集群时,目录挂载。只有一台服务器存放定时任务,挂载时排除定时任务的配置文件,只让一台服务器开启定时任务。
2、单独部署一台服务器,用来跑定时任务
3、使用linux脚本,访问集群服务器页面或action,肯定有一台服务器接收到请求,然后执行定时。
这里要说的就是第3种方式,缺点是:被访问服务器的页面或action需要做安全限制。

首先,配置linux定时任务:
vi /etc/crondtab
0 1 * * * root /dbdata/backup/cms/async.sh
然后是async.sh中,如果请求出错就发邮件报警:
#!/bin/bash
Dir="/home/webtrn/CrontabDir"
echo `date +"%Y-%m-%d-%H-%M"` >> $Dir/checklearntime.log
wget -t1 http://www.baidu.com/checkserver/XXX.jsp -o $Dir/wgetchecklearntime.log
grep -q "404" $Dir/wgetchecklearntime.log || grep -q "302" $Dir/wgetchecklearntime.log
if [ $? != 0 ]; then
echo "checklearntime have done" >> $Dir/checklearntime.log
else
echo "checklearntime is error" >> $Dir/checklearntime.log
echo "checklearntime is error" | mail -s "webtrn" zhugaojian@whaty.com
echo "checklearntime is error" | mail -s "webtrn" jinqingwen@whaty.com
fi
rm -f XXX.jsp
rm -f $Dir/wgetchecklearntime.log

linux定时任务访问页面代替quartz集群

标签:style   http   color   os   io   使用   ar   文件   数据   

原文地址:http://blog.csdn.net/yaerfeng/article/details/39178933

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!