Ticket #9 (closed 总结: 已处理)

Opened 14 years ago

Last modified 12 years ago

电脑网定时任务使用情况

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 访问论坛数据库,把版块等数据拼接成XML数据给google用
Last edited 14 years ago by qinhongyuan (previous) (diff)

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:4 Changed 14 years ago by qinhongyuan


  • 电脑网(不包括果派)
  • 脚本在172的机器上,/usr/local/bbs6/work/counter

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
接口会把所有过期了的用户勋章清除掉。

返回说明

如果执行成功,则返回""。


Last edited 13 years ago by kuangjuhuan (previous) (diff)

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_pick.groovy

记录论坛精华帖,从bbs7_topic的数据中统计,把计算的结果值写入到表bbs7_pick

  • forum_user.groovy & topic_user.groovy

需要先运行topic_user.groovy,从bbs7_post中获取数据,导出临时文件topic_user.txt,然后运行forum_user.groovy把计算的结果写入到表bbs7_forum_post_daily

Version 2, edited 13 years ago by dingjianyong (previous) (next) (diff)

comment:8 Changed 13 years ago by dingjianyong

analyzer.groovy 运行后,bbs7_forum_count_hourly表会增加相应的数据。每条数据对应一个版块。
此处作出统计字段的数据说明:
u:该板块15分钟内的用户登录数
pv:该板块的总pv数
fpv:列表页pv数
upv:登录用户的pv数
ip: 总ip访问数
fip:只访问列表页的ip访问数
tip:只访问帖子页的ip访问数

需要值得注意的是fip,tip这两个数值。只有当15分钟内单独访问列表(或帖子)页的时候,这个数值才会增加。

Last edited 13 years ago by dingjianyong (previous) (diff)

comment:9 Changed 12 years ago by dingjianyong

  • Cc qinhongyuan removed
  • Status changed from new to closed
  • Resolution set to 已处理
Note: See TracTickets for help on using tickets.