Ticket #9 (closed 总结: 已处理)
电脑网定时任务使用情况
| Reported by: | qinhongyuan | Owned by: | qinhongyuan |
|---|---|---|---|
| Priority: | 次要的(4) | Milestone: | |
| Component: | 电脑网产品论坛 | Version: | 电脑网产品论坛6.4 |
| Keywords: | Cc: | ||
| Due Date: | 01/01/2012 |
Description
总结和整理定时任务的功能
Change History
comment:1 Changed 14 years ago by qinhongyuan
- top.groovy 访问接口templates/it/topper.jsp 把内容读出来并且保存为页面静态文件(包含最新回贴,最热帖排行,版块排行,用户排行等等)
- index.groovy 访问编辑发布的首页 http://192.168.239.206/pcclub/itbbsindex/,把首页内容读取出来保存为静态文件,频率为5分钟一次,其它首页均用这种方式
- itsitemap.groovy 访问论坛数据库,把版块等数据拼接成一个静态的论坛地图页面
comment:2 Changed 14 years ago by qinhongyuan
创建新的论坛应用时需要
- 在服务器上需要建/data/path0和/data/path15两个目录,用于存放应用生成的记录文件。
- 定时任务配置。
主机配置如下 ======================== LANG=zh_CN.GB18030 ANALYZER_HOME=/data/counter/autobbs6 # process task per 15 minutes 3,18,33,48 * * * * $ANALYZER_HOME/ana.sh >> $ANALYZER_HOME/analyze.log &2>1 0 0 * * * $ANALYZER_HOME/clean.sh >> $ANALYZER_HOME/clean.log &2>1 0 1 * * * $ANALYZER_HOME/daily.sh >> $ANALYZER_HOME/daily.log &2>1 0 8 * * * /data/nginx/groovy-1.6.0/top.sh >> $ANALYZER_HOME/top.log &2>1 ======================== 其中ANALYZER_HOME为计数器目录,下面还要建backup,work和top三个子目录。 其他机配置如下 0 8 * * * /data/nginx/groovy-1.6.0/top.sh >> /data/nginx/groovy-1.6.0/top.log &2>1
comment:3 Changed 14 years ago by qinhongyuan
- clean.sh主要处理版块数据,把昨天的数据统计下来,然后把bbs6_forum表数据清0
- daily.sh统计流量,注册数据和发帖数据,访问某些jsp来进行统计各种报表,如管理员工作,审核工作,新帖(冗余数据供接口使用)
曾遇到问题:发帖统计了,经检查发现clean.sh脚本执行的时候,链接不上/util/dailyroll_forumtodaypost.jsp,导致数据没有插入到bbs6_forum_post_daily(按年分表)。
手动运行clean.sh和forum_post_sum.groovy脚本,数据统计昨天到clean.sh运行时的数据。。
comment:5 Changed 14 years ago by qinhongyuan
- 论坛主帖访问数,是通过缓存和文件结合的方式来处理的,缓存和文件数据(counter)同时记录的。
- 缓存用来做实时显示,而文件是15分钟后经过统计入库的。
- 读取浏览数的时候,会先在缓存读,缓存没有才去读数据库。
- 这里有一个问题就是缓存失效了(该分片内存存储过多,就会把旧的缓存冲掉,即使缓存还没过失效期)
- 不过这种情况是比较少的。。
comment:6 Changed 13 years ago by kuangjuhuan
BBS7定时任务调用接口说明
- 用户每天发帖量统计
调用说明
调用接口: /util/daily/user.do?date=xxx,不传date参数默认是统计今天。
接口会统计所有用户某一天发帖数、回帖数、评分数、被评精华数、积分1~7分数差值;数据会统计到bbs7_user_daily_xx表中(按年分表)。
返回说明
如果执行成功,会返回一个JSON对象,{status:0, ""}。
- 版主工作量统计
调用说明
调用接口:/util/daily/admin_working.do?date=xxx,不传date参数默认是统计今天。
接口会统计包括版主、版副、嘉宾三个角色所有用户每天的工作量情况,板块在线时长、发帖数、回帖数、删除主题数、删除回帖数、锁用户数、解锁用户数、禁止签名数、启用签名数、授勋数、设置板块管理员数、取消板块管理员数、置顶主题数、取消置顶主题数、设置精华数、取消精华数、移动主题数、设置帖子标签数、提升主题数、下沉主题数、高亮主题数、取消高亮主题数、关闭主题数、打开主题数、复制主题数、评分数、撤销评分数、处理投诉数;数据会统计到bbs7_admin_daily_xx(按月分表)。
返回说明
如果执行成功,会返回一个JSON对象,{status:0, ""}。
- 每天新贴、热帖统计
调用说明
调用接口:/util/daily/topic.do?date=xxx,不传date参数默认是统计今天。
接口会统计所有版块每天新贴、热帖数据;新贴数据是根据发帖时间倒叙排序,回帖数大于2(防止广告党)的前20条数据;热帖则分成2天、7天、30天、所有等几种方式统计,分别统计在不同时间段内的热帖,根据回帖数量倒叙排序,取前20条数据,插入对应表中。
返回说明
如果执行成功,会返回一个JSON对象,{status:0, ""}。
- 统计昨天版块的计数器
调用说明
调用接口:/util/daily/roll_forumtodaypost.do
接口会统计昨天版块的计数器,并且清空今天的实时数据,例如今天发帖数。
返回说明
如果执行成功,则返回""。
- 清除过期高亮主题
调用说明
调用接口:/util/daily/clean_highlight.do
接口会把所有过期了的高亮清除掉。
返回说明
如果执行成功,则返回""。
- 清除过期被锁IP
调用说明
调用接口:/util/daily/clean_iplock.do
接口会把所有过期了的被锁IP清除掉。
返回说明
如果执行成功,则返回""。
- 清除过期被锁用户
调用说明
调用接口:/util/daily/clean_lock.do
接口会把所有过期了的被锁用户清除掉。
返回说明
如果执行成功,则返回""。
- 清除过期置顶主题
调用说明
调用接口:/util/daily/clean_top.do。
接口会把所有过期了的置顶主题清除掉。
返回说明
如果执行成功,则返回""。
- 清除过期被锁主题
调用说明
调用接口:/util/daily/clean_topiclock.do
接口会把所有过期了的被锁主题清除掉。
返回说明
如果执行成功,则返回""。
- 清除过期用户勋章
调用说明
调用接口:/util/daily/clean_usermedal.do
接口会把所有过期了的用户勋章清除掉。
返回说明
如果执行成功,则返回""。
comment:7 Changed 13 years ago by dingjianyong
BBS7定时任务groovy脚本说明:
- path0/15里的文件数据格式为:
与当前时间段的时间延迟毫秒数,版块ID,主题ID,用户ID,IP,请求URL(可以为空),来源URL(可以为空),用户动作类型(1:查看,2:发帖,3:回帖)。
- analyzer.groovy
15分钟运行一次,从path0和path15的文件夹里抓取数据。
记录帖子访问量,把计算的结果值写入到表bbs7_counter_daily
记录版块访问量,把计算的结果值写入到表bbs7_forum_count_hourly
记录在线信息,也就是各个版块15分钟时间段内的ip数和用户数,把计算的结果值写入到表bbs7_online
分版块记录15分钟时间段内的在线登录用户,把计算的结果值写入到表bbs7_online_user
记录用户在整个论坛的在线时间,记录合计为每天的分钟数,把计算的结果值写入到表bbs7_online_time
- daily_count.groovy
记录版块访问量,从bbs7_forum_count_hourly的数据中统计,把计算的结果值写入到表bbs7_forum_count_daily
- daily_post_sum.groovy
记录版块发帖量,把计算的结果值写入到表bbs7_forum_post_daily。需要先调用接口/util/daily/roll_forumtodaypost.do 初始化数据行。
- daily_reg.groovy
记录用户注册量,从bbs7_user的数据中统计,把计算的结果值写入到表bbs7_user_reg_daily
- forum_user.groovy & topic_user.groovy
需要先运行topic_user.groovy,从bbs7_post中获取数据,导出临时文件topic_user.txt,然后运行forum_user.groovy把计算的结果写入到表bbs7_forum_post_daily
![(please configure the [header_logo] section in trac.ini)](http://www1.pconline.com.cn/hr/2009/global/images/logo.gif)