linux定时任务访问页面代替quartz集群_html/css_WEB-ITnose

WBOY
Freigeben: 2016-06-24 11:58:18
Original
1179 Leute haben es durchsucht

业务背景:

web中经常有业务需要定时执行,但是在集群环境中,如果多个服务器中的定时任务同时开启的话会导致数据库挂掉,

实际应该中只有一个定时任务访问数据库。

怎么解决这一问题呢:

1、多服务器集群时,目录挂载。只有一台服务器存放定时任务,挂载时排除定时任务的配置文件,只让一台服务器开启定时任务。

2、单独部署一台服务器,用来跑定时任务

3、使用linux脚本,访问集群服务器页面或action,肯定有一台服务器接收到请求,然后执行定时。

这里要说的就是第3种方式,缺点是:被访问服务器的页面或action需要做安全限制。


首先,配置linux定时任务:

vi /etc/crondtab

                  <p class="sycode">                      <p class="sycode">       0 1 * * * root /dbdata/backup/cms/async.sh      </p>                  </p>
Nach dem Login kopieren

然后是async.sh中,如果请求出错就发邮件报警:

              <p class="sycode">                  <p class="sycode">      #!/bin/bash     </p>                  <p class="sycode">      Dir="/home/webtrn/CrontabDir"     </p>                  <p class="sycode">      echo `date +"%Y-%m-%d-%H-%M"` >> $Dir/checklearntime.log     </p>                  <p class="sycode">      wget -t1 http://www.baidu.com/checkserver/XXX.jsp -o $Dir/wgetchecklearntime.log     </p>                  <p class="sycode">      grep -q "404" $Dir/wgetchecklearntime.log || grep -q "302" $Dir/wgetchecklearntime.log     </p>                  <p class="sycode">      if [ $? != 0 ]; then     </p>                  <p class="sycode">      echo "checklearntime have done" >> $Dir/checklearntime.log     </p>                  <p class="sycode">      else     </p>                  <p class="sycode">      echo "checklearntime is error" >> $Dir/checklearntime.log     </p>                  <p class="sycode">      echo "checklearntime is error" | mail -s "webtrn" zhugaojian@whaty.com     </p>                  <p class="sycode">      echo "checklearntime is error" | mail -s "webtrn" jinqingwen@whaty.com     </p>                  <p class="sycode">      fi     </p>                  <p class="sycode">      rm -f XXX.jsp     </p>                  <p class="sycode">      rm -f $Dir/wgetchecklearntime.log     </p>              </p>
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!