wiki:task

Version 11 (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(避免输出日志到控制台时中文乱码)
  • 举个例子:统计车友会会员排名的定时任务,

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分执行一次
    • 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
  • 车友会重置周排行,每周一0点一分执行一次
    • 30 0 * * 1 $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
  • 车友会动态消息发送,除了8点17点20点半,每十分钟执行一次发车友会动态消息
    • 0,10,20,30,40,50 0-7,9-16,18,19,21-23 * * * $ANALYZER_HOME/sendClubMessage.sh >> $ANALYZER_HOME/log/sendClubMessage.log 2>&1
  • 车友会动态消息发送,8点17点20点半的前后15分钟不执行,其他时间10分钟执行一次
    • 0,15,45 8,17,20 * * * $ANALYZER_HOME/sendClubMessage.sh >> $ANALYZER_HOME/log/sendClubMessage.log 2>&1
  • 车友会统计会员昨天周排行榜,每天1点10分执行一次
    • 1 0 * * * $ANALYZER_HOME/clubMemberYesterdayRankApp.sh >>$ANALYZER_HOME/log/clubMemberYesterdayRankApp.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?