| Version 13 (modified by chenshuyao, 11 years ago) (diff) |
|---|
定时开发
线上定时任务相关部署
- jar包:192.168.236.196/data/clubcron/task/task-1.0-SNAPSHOT.jar (只有196这台机有)
- 配置文件:/data/clubcron/task/conf/autoclub.properties (注意其中mc的相关配置要严格跟resin下的配置一致)
- 日志:/data/clubcron/task/log/autoclubtask.log (默认全部任务都输出到这个文件)
- 定时操作是利用系统crontab命令实现,所以对每个定时任务都需要准备好相关的脚本xxx.sh,然后让网络帮忙配置crontab命令
- 执行脚本需要先配置好环境变量:ANALYZER_HOME=/data/clubcron/task(jar执行目录) LANG=zh_CN.GB18030(避免输出日志到控制台时中文乱码)
- 举个例子:统计车友会会员排名的定时任务,利用crontab定时执行脚本,执行完后,再调http接口清缓存。
执行脚本:memberRankTask.sh
#!/bin/bash
export LANG=zh_CN.GB18030
ANALYZER_HOME=$(cd "$(dirname "$0")"; pwd)
cd $ANALYZER_HOME
/usr/java/jdk1.6.0_32/bin/java -jar task-1.0-SNAPSHOT.jar memberRankTask
sleep 3
curl -s -x 192.168.239.200:1080 --max-tim e600 --connect-timeout 120 " http://club.pcauto.com.cn/util/daily/clear_member_info.do"
crontab定时: * 0 0 * * * $ANALYZER_HOME/memberRankTask.sh >> $ANALYZER_HOME/memberRankTask.log 2>&1
crontab定时任务列表
- 统计每个车友会会员排名,每天0点0分执行一次
- 0 0 * * * $ANALYZER_HOME/memberRankTask.sh >> $ANALYZER_HOME/memberRankTask.log 2>&1
- 统计车友会每天(昨天)增加的油值,每天1点0分执行一次
- 0 1 * * * $ANALYZER_HOME/dailyClubMemberPetrolTask.sh >> $ANALYZER_HOME/log/dailyClubMemberPetrolTask.log 2>&1
- 统计车友会每天(昨天)增加的油值,每天1点30分执行一次
- 30 1 * * * $ANALYZER_HOME/dailyClubPetrolTask.sh >> $ANALYZER_HOME/log/dailyClubPetrolTask.log 2>&1
- 统计过去一周的车友会油值,每周日2点0分执行一次
- 0 2 * * 0 $ANALYZER_HOME/weeklyClubPetrolTask.sh >> $ANALYZER_HOME/log/weeklyClubPetrolTask.log 2>&1
- 每天检查同步总油值、等级、发贴总数、留言总数,每天2点30分执行一次
- 30 2 * * * $ANALYZER_HOME/synClubTotalPetrolTask.sh >> $ANALYZER_HOME/log/synClubTotalPetrolTask.log 2>&1
- 按活跃度计算车友会排名,每天的3点0分执行一次
- 0 3 * * * $ANALYZER_HOME/countClubRank.sh >> $ANALYZER_HOME/log/countClubRank.log 2>&1
- 统计本周和上周的会员人数和认证人数,每周一的3点30分执行一次
- 30 3 * * 1 $ANALYZER_HOME/clubTotalMemberTask.sh >> $ANALYZER_HOME/log/clubTotalMemberTask.log 2>&1
- 车友会重置周排行,每周日23点55分执行一次
- 55 23 * * 0 $ANALYZER_HOME/clearWeekRank.sh >>$ANALYZER_HOME/log/clearWeekRank.log 2>&1
- 系统消息发送,0点1分,12点1分,15点1分都执行一次
- 31 8,17,20 * * * $ANALYZER_HOME/sendSysMessage.sh >> $ANALYZER_HOME/log/sendSysMessage.log 2>&1
- 车友会动态消息发送,12分钟执行一次
- 0,12,24,36,48 * * * * $ANALYZER_HOME/sendClubMessage.sh >> $ANALYZER_HOME/log/sendClubMessage.log 2>&1
- 车友会统计会员昨天周排行榜,每天12点01分执行一次
- 1 0 * * * $ANALYZER_HOME/clubMemberYesterdayRankApp.sh >>$ANALYZER_HOME/log/clubMemberYesterdayRankApp.log 2>&1
- 统计车友会每天发帖子、说说、回复情况,每天2点01分执行一次
- 1 2 * * * $ANALYZER_HOME/dailyGeneralSituationTask.sh >>$ANALYZER_HOME/log/dailyGeneralSituationTask.log 2>&1
一次性工具
有时有些旧数据要处理,或者有报障,或者发单个系统消息,这时就需要用到下面的一些工具了。如果要输出日志到文件的话,就要叫网络帮忙执行,开发自己的账号是没有写文件的权限的。
- 统计某个会员的总排行(最初是测试,处理报障时用,现在比较少用)
- /usr/java/jdk1.6.0_32/bin/java -cp task-1.0-SNAPSHOT.jar cn.pconline.autoclub.task.MemberRank? initOneMemberAllRank ${clubId} ${userId}
- 统计某个会员的周排行(最初是测试,处理报障时用,现在比较少用)
- /usr/java/jdk1.6.0_32/bin/java -cp task-1.0-SNAPSHOT.jar cn.pconline.autoclub.task.MemberRank? initOneMemberWeekRank ${clubId} ${userId}
- 删除MC的某个key(之前调试用,目前没用)
- /usr/java/jdk1.6.0_32/bin/java -cp task-1.0-SNAPSHOT.jar cn.pconline.autoclub.task.McUtils? delete ${key}
- 查询MC的某个值(之前调试用,目前没用)
- /usr/java/jdk1.6.0_32/bin/java -cp task-1.0-SNAPSHOT.jar cn.pconline.autoclub.task.McUtils? get ${key}
- 发送单条系统消息,不传ID就发送全部(偶尔会有编辑要赶着发系统消息)
- /usr/java/jdk1.6.0_32/bin/java -cp task-1.0-SNAPSHOT.jar cn.pconline.autoclub.task.SendMsgTask? sendSysMsg [${msgId}]
- 发送单条车友会动态提醒消息,不传ID就发送全部
- /usr/java/jdk1.6.0_32/bin/java -cp task-1.0-SNAPSHOT.jar cn.pconline.autoclub.task.SendMsgTask? sendDynaMsg [${msgId}]
- 同步动态图片(已经没用了)
- /usr/java/jdk1.6.0_32/bin/java -cp task-1.0-SNAPSHOT.jar cn.pconline.autoclub.task.SyncTopicImage?
- 同步动态回复(已经没用了)
- /usr/java/jdk1.6.0_32/bin/java -cp task-1.0-SNAPSHOT.jar cn.pconline.autoclub.task.SyncTopicReply?
![(please configure the [header_logo] section in trac.ini)](http://www1.pconline.com.cn/hr/2009/global/images/logo.gif)