通过Linux定时任务实现定时轮询数据库及发送Http请求
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了通过Linux定时任务实现定时轮询数据库及发送Http请求,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2118字,纯文字阅读大概需要4分钟。
内容图文
![通过Linux定时任务实现定时轮询数据库及发送Http请求](/upload/InfoBanner/zyjiaocheng/500/34b00111386c422e944aada03731b8db.jpg)
通过Linux定时任务实现定时轮询数据库及发送Http请求
概述
有时需要临时增加一个定时任务(需要根据数据库查询结果然后发送HTTP请求),如果在项目中额外增加(Java+Spring+Quartz),则需要编写很多代码,而且还需要重新编译发布,比较麻烦,特别是在紧急情况下的时候。采用Linux脚本,再加上JSP(根据业务需要),可以比较快的解决问题。
环境准备
- 安装MySQL Client
- 安装curl
脚本内容
#!/bin/bash
#
# @file test_task.sh
# @brief test_task
# @author Huligong1234
# @version 0.1
# @date 2018-02-17
#
#脚本目录
WORK_DIR=/data/scripts
#日志目录
LOG_DIR=${WORK_DIR}/logs/test_task
LOG_FILE_NAME=test_task_`date +%Y%m%d%H`.log
LOG_FILE=${LOG_DIR}/${LOG_FILE_NAME}
#MySQL连接信息
MYSQL_HOST="192.168.1.106"
MYSQL_USER="readonly"
MYSQL_PWD="readonly"
MYSQL_DATABASE="myproj"
#目标HTTP地址
SENDTO_NOTIFY_URL="http://192.168.1.106:8081/notify/notify.jsp"
#SENDTO_NOTIFY_URL="http://api.domain.com/notify/notify.jsp"
#查询数据获得目标ID集合
idList=`mysql -h $MYSQL_HOST -u $MYSQL_USER -p$MYSQL_PWD $MYSQL_DATABASE <<EOF | tail -n +2
SELECT t.tx_no
FROM t_app_log t
WHERE t.create_date BETWEEN DATE_SUB(NOW(),INTERVAL 5 MINUTE) AND NOW()
AND t.result_code='SUCCESS'
ORDER BY t.create_date DESC
LIMIT 50;
EOF`
#迭代集合,通过curl逐个发送HTTP请求
for tid in $idList;
do
echo `date '+%Y-%m-%d %H:%M:%S'` [$tid] `curl -o /dev/null -s -m 3 --connect-timeout 3 -w %{http_code} "${SENDTO_NOTIFY_URL}?tx_no=$tid"` >> ${LOG_FILE}
done
crontab配置(每分钟执行一次)
$ crontab -e #编辑
$ crontab -l #查看
0 0 * * * /bin/bash /usr/local/tengine/logs/cut-log.sh
*/1 * * * * /bin/bash /data/scripts/test_task.sh
00 12 * * * /sbin/ntpdate cn.pool.ntp.org
配置为开机启动
方法一、修改/etc/rc.local
方法二、chkconfig管理 (/etc/init.d)
备注
如果脚本是在Windows环境下编写,拷贝到Linux环境下时可能会提示换行符等错误信息,
可以通过安装dos2unix命令转换:
$ yum -y install dos2unix
$ dos2unix test_task.sh
通过Linux定时任务实现定时轮询数据库及发送Http请求
标签:配置 开机 dir 查询 linu inter 项目 markdown desc
本文系统来源:https://www.cnblogs.com/huligong1234/p/8456955.html
内容总结
以上是互联网集市为您收集整理的通过Linux定时任务实现定时轮询数据库及发送Http请求全部内容,希望文章能够帮你解决通过Linux定时任务实现定时轮询数据库及发送Http请求所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。