| | |
| | | <groupId>com.101tec</groupId> |
| | | <artifactId>zkclient</artifactId> |
| | | <version>0.10</version> |
| | | <exclusions> |
| | | <exclusion> |
| | | <groupId>org.slf4j</groupId> |
| | | <artifactId>slf4j-log4j12</artifactId> |
| | | </exclusion> |
| | | </exclusions> |
| | | </dependency> |
| | | <!-- Dubbo end --> |
| | | |
| | |
| | | server: |
| | | port: 8082 |
| | | port: 8080 |
| | | tomcat: |
| | | uri-encoding: UTF-8 |
| | | |
| | |
| | | |
| | | datasource: |
| | | #172.16.16.17:3306 |
| | | url: jdbc:mysql://gz-cdb-r13d0yi9.sql.tencentcdb.com:62929/ks_app |
| | | #gz-cdb-r13d0yi9.sql.tencentcdb.com:62929 |
| | | url: jdbc:mysql://172.16.16.17:3306/ks_app |
| | | username: root |
| | | password: Yeshi2016@ |
| | | driver-class-name: com.mysql.jdbc.Driver |
| | |
| | | name: app-provider |
| | | registry: |
| | | protocol: zookeeper |
| | | address: zookeeper://192.168.3.136:2181 # 134.175.68.214 134.175.68.214:2181 |
| | | address: zookeeper://134.175.68.214:2181 # 134.175.68.214 134.175.68.214:2181 |
| | | client: curator |
| | | protocol: |
| | | name: dubbo |
| | | port: 20882 |
| | | port: 20901 |
| | | scan: |
| | | base-packages: com.ks.app.service |
| | | provider: |
| | |
| | | <groupId>com.ks</groupId> |
| | | <artifactId>facade-lucky</artifactId> |
| | | <version>0.0.1-SNAPSHOT</version> |
| | | <exclusions> |
| | | <exclusion> |
| | | <groupId>org.slf4j</groupId> |
| | | <artifactId>slf4j-log4j12</artifactId> |
| | | </exclusion> |
| | | |
| | | </exclusions> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>com.ks</groupId> |
| | | <artifactId>facade-daylucky</artifactId> |
| | | <version>0.0.1-SNAPSHOT</version> |
| | | <exclusions> |
| | | <exclusion> |
| | | <groupId>org.slf4j</groupId> |
| | | <artifactId>slf4j-log4j12</artifactId> |
| | | </exclusion> |
| | | |
| | | </exclusions> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | | <groupId>com.ks</groupId> |
| | | <artifactId>facade-app</artifactId> |
| | | <version>0.0.1-SNAPSHOT</version> |
| | | <exclusions> |
| | | <exclusion> |
| | | <groupId>org.slf4j</groupId> |
| | | <artifactId>slf4j-log4j12</artifactId> |
| | | </exclusion> |
| | | |
| | | </exclusions> |
| | | </dependency> |
| | | |
| | | <dependency> |
| | |
| | | <groupId>org.springframework.boot</groupId> |
| | | <artifactId>spring-boot-starter-tomcat</artifactId> |
| | | </exclusion> |
| | | <exclusion> |
| | | <groupId>org.slf4j</groupId> |
| | | <artifactId>slf4j-log4j12</artifactId> |
| | | </exclusion> |
| | | </exclusions> |
| | | </dependency> |
| | | |
New file |
| | |
| | | package com.ks.daylucky.util; |
| | | |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | public class LoggerUtil { |
| | | |
| | | public final static Logger mqLogger= LoggerFactory.getLogger("mqLogger"); |
| | | |
| | | } |
| | |
| | | import com.ks.daylucky.exception.ActivityDrawnRecieveNotifyInfoException; |
| | | import com.ks.daylucky.pojo.DO.ActivityDrawnRecieveNotifyInfo; |
| | | import com.ks.daylucky.service.ActivityDrawnRecieveNotifyInfoService; |
| | | import com.ks.daylucky.util.LoggerUtil; |
| | | import com.ks.daylucky.util.mq.CMQManager; |
| | | import com.ks.lucky.pojo.DO.LuckyActivityAwardResult; |
| | | import com.ks.lucky.pojo.DO.LuckyActivityAwards; |
| | |
| | | new JobThreadExecutorServiceImpl().run(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | logger.info("接收消息"); |
| | | LoggerUtil.mqLogger.info("接收消息 {}", ActivityDrawnNotifyConsumer.class.getSimpleName()); |
| | | List<Message> messageList = CMQManager.getInstance().consumeActivityDrawnMsg(16); |
| | | if (messageList != null) { |
| | | for (Message message : messageList) { |
| | |
| | | package com.ks.daylucky.util.mq.consumer; |
| | | |
| | | import com.alipay.api.AlipayApiException; |
| | | import com.ks.app.entity.AppInfo; |
| | | import com.ks.app.util.AlipayAppUtil; |
| | | import com.ks.daylucky.exception.UserMsgException; |
| | | import com.ks.daylucky.pojo.DO.UserInfo; |
| | | import com.ks.daylucky.pojo.DO.UserMsg; |
| | | import com.ks.daylucky.pojo.DTO.UserMsgSettings; |
| | | import com.ks.daylucky.pojo.DTO.msg.LuckyMsgContent; |
| | | import com.ks.daylucky.pojo.VO.SimpleUser; |
| | | import com.ks.daylucky.service.UserInfoExtraService; |
| | | import com.ks.daylucky.service.UserInfoService; |
| | | import com.ks.daylucky.service.UserMsgService; |
| | | import com.ks.daylucky.service.impl.AlipayTemplateMsgManager; |
| | | import com.ks.daylucky.service.impl.AppManager; |
| | | import com.ks.daylucky.util.UserInfoUtil; |
| | | import com.ks.daylucky.util.activity.ActivityUtil; |
| | | import com.ks.daylucky.util.LoggerUtil; |
| | | import com.ks.daylucky.util.factory.LuckyMsgContentFactory; |
| | | import com.ks.daylucky.util.factory.UserMsgFactory; |
| | | import com.ks.daylucky.util.mq.CMQManager; |
| | |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.yeshi.utils.JsonUtil; |
| | | import org.yeshi.utils.alipay.AlipayXcxUtil; |
| | | import org.yeshi.utils.exception.AlipayXcxException; |
| | | import org.yeshi.utils.mq.JobThreadExecutorServiceImpl; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | new JobThreadExecutorServiceImpl().run(new Runnable() { |
| | | @Override |
| | | public void run() { |
| | | logger.info("读取消息队列数据"); |
| | | LoggerUtil.mqLogger.info("接收消息 {}", MsgConsumer.class.getSimpleName()); |
| | | List<Message> messageList = CMQManager.getInstance().consumeMsgMsg(16); |
| | | if (messageList != null) { |
| | | for (Message message : messageList) { |
| | |
| | | try { |
| | | userMsgService.addMsg(UserMsgFactory.createLuckyMsg(Long.parseLong(result.getUid()), LuckyMsgContentFactory.createDrawn(dto.getActivityId(), activity.getCreateTime(), awards.getAwardName()))); |
| | | } catch (UserMsgException e) { |
| | | logger.error("添加中奖消息出错", e.getMessage(), result.getId()); |
| | | logger.error("添加中奖消息出错 awardResultId-{}", result.getId(), e); |
| | | } |
| | | |
| | | //发送中奖模板消息 |
| | |
| | | try { |
| | | userMsgService.addMsg(UserMsgFactory.createLuckyMsg(Long.parseLong(user.getUid()), LuckyMsgContentFactory.createNotDrawn(dto.getActivityId(), activity.getCreateTime()))); |
| | | } catch (UserMsgException e) { |
| | | logger.error("添加未中奖消息出错", e.getMessage(), user.getUid(), dto.getActivityId()); |
| | | logger.error("添加未中奖消息出错 activityId-{} uid-{} ", dto.getActivityId(),user.getUid(),e); |
| | | } |
| | | |
| | | //发送未中奖模板消息 |
| | | alipayTemplateMsgManager.sendUnDrawnMsg(activity, Long.parseLong(result.getUid())); |
| | | } |
| | |
| | | try { |
| | | userMsgService.addMsg(UserMsgFactory.createLuckyMsg(Long.parseLong(user.getUid()), LuckyMsgContentFactory.createOpenFail(dto.getActivityId(), activity.getCreateTime()))); |
| | | } catch (UserMsgException e) { |
| | | logger.error("添加未开奖消息出错", e.getMessage(), user.getUid(), dto.getActivityId()); |
| | | logger.error("添加未开奖消息出错 activityId-{} uid-{}", dto.getActivityId(), user.getUid(), e); |
| | | } |
| | | } |
| | | } |
| | |
| | | try { |
| | | userMsgService.addMsg(UserMsgFactory.createLuckyMsg(Long.parseLong(dto.getUid()), LuckyMsgContentFactory.createJoinSuccess(dto.getActivityId(), activity.getCreateTime()))); |
| | | } catch (UserMsgException e) { |
| | | logger.error("添加参与成功消息出错", e.getMessage(), dto.getUid(), dto.getActivityId()); |
| | | logger.error("添加参与成功消息出错 activityId-{} uid-{}", dto.getActivityId(), dto.getUid(), e); |
| | | } |
| | | } |
| | | |
| | |
| | | userMsgService.addMsg(UserMsgFactory.createLuckyMsg(Long.parseLong(dto.getTargetUid()), LuckyMsgContentFactory.createAssistAndJoin(dto.getActivityId(), activity.getCreateTime(), user, assist.getWeight()))); |
| | | } |
| | | } catch (UserMsgException e) { |
| | | logger.error("添加助力成功消息出错", e.getMessage(), dto.getUid(), dto.getActivityId()); |
| | | logger.error("添加助力成功消息出错:activityId-{} uid-{}", dto.getActivityId(), dto.getUid(), e); |
| | | } |
| | | } |
| | | } |
| | |
| | | try { |
| | | userMsgService.addMsg(UserMsgFactory.createLuckyMsg(Long.parseLong(dto.getUid()), LuckyMsgContentFactory.createReceiveOutDate(dto.getActivityId(), activity.getCreateTime()))); |
| | | } catch (UserMsgException e) { |
| | | logger.error("添加过期未领消息出错", e.getMessage(), dto.getUid(), dto.getActivityId()); |
| | | logger.error("添加过期未领消息出错:", dto.getActivityId(), dto.getUid(), e); |
| | | } |
| | | |
| | | break; |
| | |
| | | server: |
| | | port: 8083 |
| | | port: 8080 |
| | | tomcat: |
| | | uri-encoding: UTF-8 |
| | | |
| | |
| | | mongodb: |
| | | username: yeshi |
| | | password: 'Yeshi2016@' |
| | | host: 193.112.35.168 |
| | | port: 27016 |
| | | #172.16.16.44 |
| | | #193.112.35.168 |
| | | host: 172.16.16.44 |
| | | port: 27017 |
| | | database: day-lucky |
| | | authentication-database: admin |
| | | |
| | | datasource: |
| | | url: jdbc:mysql://gz-cdb-r13d0yi9.sql.tencentcdb.com:62929/ks_day_lucky?&useTimezone=true&serverTimezone=GMT%2B8 |
| | | #gz-cdb-r13d0yi9.sql.tencentcdb.com:62929 |
| | | #172.16.16.17:3306 |
| | | url: jdbc:mysql://172.16.16.17:3306/ks_day_lucky?&useTimezone=true&serverTimezone=GMT%2B8 |
| | | username: root |
| | | password: Yeshi2016@ |
| | | driver-class-name: com.mysql.jdbc.Driver |
| | |
| | | configuration: |
| | | log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl |
| | | redis: |
| | | host: 193.112.34.40 |
| | | #193.112.34.40 |
| | | #172.16.16.3 |
| | | host: 172.16.16.3 |
| | | port: 6379 |
| | | password: 'weikou2014' |
| | | timeout: 5000 |
| | |
| | | name: daylucky-consumer |
| | | registry: |
| | | protocol: zookeeper |
| | | address: zookeeper://192.168.3.136:2181 # 134.175.68.214 134.175.68.214:2181 |
| | | address: zookeeper://134.175.68.214:2181 # 134.175.68.214 134.175.68.214:2181 |
| | | client: curator |
| | | protocol: |
| | | name: dubbo |
| | | port: 20883 |
| | | scan: |
| | | base-packages: com.ks.lucky.service.impl.remote |
| | | provider: |
| | | consumer: |
| | | check: false |
| | | timeout: 10000 |
| | | |
| | | xxl: |
| | | job: |
| | | accessToken: |
| | | executor: |
| | | appname: demo |
| | | appname: daylucky |
| | | ip: |
| | | logpath: /data/applogs/xxl-job/jobhandler |
| | | logretentiondays: -1 |
| | | port: 10000 |
| | | logretentiondays: 30 |
| | | port: 9991 |
| | | admin: |
| | | addresses: http://localhost:8081/xxl-job-admin |
| | | |
| | | |
| | | # appId =1255749512 |
| | | # secretId =AKIDTlpgJhLjOozvd6QI2XnpfGbgV4NQJk25 |
| | | # secretKey =xhCSUHo55oHUQ6XicFcmfIgspX0EEzWo |
| | | # bucketName =ec |
| | | # region=ap-guangzhou |
| | | cos: |
| | | appId: 1255749512 |
| | | secretId: AKIDTlpgJhLjOozvd6QI2XnpfGbgV4NQJk25 |
| | |
| | | <property name="log.maxHistory" value="30"/> |
| | | <!--日志存储的根路径 ${catalina.base}指向每个Tomcat目录私有信息的位置, |
| | | 就是conf、logs、temp、webapps和work的父目录--> |
| | | <property name="log.filePath" value="E:/logback"/> |
| | | <property name="log.filePath" value="/usr/local/tomcat/logs"/> |
| | | <!--日志展示的格式--> |
| | | <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/> |
| | | |
| | |
| | | |
| | | <!-- ERROR --> |
| | | <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
| | | <file>${log.filePath}/error.log</file> |
| | | <file>${log.filePath}/error/error.log</file> |
| | | <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
| | | <fileNamePattern>${log.filePath}/error/error.log.gz.%d{yyyy-MM-dd}</fileNamePattern> |
| | | <maxHistory>${log.maxHistory}</maxHistory> |
| | |
| | | </filter> |
| | | </appender> |
| | | |
| | | |
| | | <appender name="mqAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
| | | <file>${log.filePath}/mq/info.log</file> |
| | | <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
| | | <fileNamePattern>${log.filePath}/mq/info.log.zip.%d{yyyy-MM-dd}</fileNamePattern> |
| | | <maxHistory>${log.maxHistory}</maxHistory> |
| | | </rollingPolicy> |
| | | <encoder> |
| | | <pattern>${log.pattern}</pattern> |
| | | </encoder> |
| | | </appender> |
| | | |
| | | <!--name表示为哪一个logger指定层级和输出的方式 |
| | | additivity表示叠加祖先的输出方式(默认为true,会叠加),所以com.lxc.o2o以及其子类都会输出在控制台中,因为这个logger继承了root中的appender |
| | | level表示级别大于等于${log.level}的信息才会输出,输出方式为配置的appender, |
| | |
| | | error日志会输出到errorAppender指定的文件中--> |
| | | |
| | | <!-- 一切logger都会继承自root,root默认的层级level为debug --> |
| | | |
| | | <logger name="mqLogger" level="INFO" additivity="true"> |
| | | <appender-ref ref="mqAppender"></appender-ref> |
| | | </logger> |
| | | |
| | | |
| | | <root level="INFO"> |
| | | <!--在控制台中输出所在层级对应level(以及大于level)的日志信息,因为这里并没有设置LevelFilter--> |
| | | <appender-ref ref="STDOUT"></appender-ref> |
New file |
| | |
| | | package com.ks; |
| | | |
| | | import org.junit.jupiter.api.Test; |
| | | |
| | | public class CuratorTest { |
| | | |
| | | @Test |
| | | public void test1() { |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.ks.daylucky; |
| | | |
| | | import org.junit.jupiter.api.Test; |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | import java.text.MessageFormat; |
| | | |
| | | public class LoggerTest { |
| | | |
| | | @Test |
| | | public void log() { |
| | | LoggerFactory.getLogger(LoggerTest.class).error("错误测试"); |
| | | } |
| | | |
| | | @Test |
| | | public void test1() { |
| | | System.out.println(MessageFormat.format("{0}", "你好")); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | import com.ks.lucky.query.ActivityAwardResultQuery; |
| | | import com.ks.lucky.service.LuckyMQService; |
| | | import com.ks.lucky.util.Constant; |
| | | import com.ks.lucky.util.LoggerUtil; |
| | | import com.ks.lucky.util.RedPackageUtil; |
| | | import com.ks.lucky.util.mq.CMQManager; |
| | | import com.ks.lucky.util.mq.LuckyMQFactory; |
| | |
| | | if (result.getState() != LuckyActivityAwardResult.STATE_NOT_RECIEVE) { |
| | | return; |
| | | } |
| | | LoggerUtil.activityJoinLogger.info("设置中奖过期未领开始:awardResultId-{}",id); |
| | | |
| | | LuckyActivityAwardResult update = new LuckyActivityAwardResult(); |
| | | update.setId(id); |
| | |
| | | result.setState(update.getState()); |
| | | //发布消息 |
| | | CMQManager.getInstance().publishActivityDrawnMsg(ActivityDrawnMsgDTO.create(result)); |
| | | LoggerUtil.activityJoinLogger.info("设置中奖过期未领成功:awardResultId-{}",id); |
| | | } |
| | | |
| | | /** |
| | |
| | | import com.ks.lucky.pojo.DTO.mq.ActivityStateChangeMsgDTO; |
| | | import com.ks.lucky.service.LuckyActivityImageService; |
| | | import com.ks.lucky.service.LuckyMQService; |
| | | import com.ks.lucky.util.LoggerUtil; |
| | | import com.ks.lucky.util.annotation.RedisCache; |
| | | import com.ks.lucky.util.annotation.RedisCacheEvict; |
| | | import com.ks.lucky.util.mq.CMQManager; |
| | | import com.ks.lucky.util.mq.LuckyMQFactory; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.transaction.annotation.Propagation; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | update.setId(activityId); |
| | | update.setCurrentPersonCount(currentCount + count); |
| | | update.setUpdateTime(new Date()); |
| | | luckyActivityMapper.updateByPrimaryKeySelective(update); |
| | | updateSelectiveByPrimaryKey(update); |
| | | if (update.getCurrentPersonCount().intValue() >= openInfo.getMinPersonCount() && currentCount < openInfo.getMinPersonCount()) { |
| | | //达到最低开奖人数 |
| | | CMQManager.getInstance().addActivityMsg(new ActivityMQMsg(activityId, ActivityMQMsg.TYPE_REACH_MIN_PERSON, new Date())); |
| | |
| | | * |
| | | * @param activityId |
| | | */ |
| | | @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) |
| | | @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activityId") |
| | | public void startUpActivity(Long activityId) throws LuckyActivityException, LuckyMQException { |
| | | LuckyActivity luckyActivity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); |
| | |
| | | update.setId(activityId); |
| | | update.setActualStartTime(new Date()); |
| | | update.setUpdateTime(new Date()); |
| | | luckyActivityMapper.updateByPrimaryKeySelective(update); |
| | | updateSelectiveByPrimaryKey(update); |
| | | |
| | | //有预计结束时间 |
| | | if (luckyActivity.getPreFinishTime() != null) { |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | |
| | | LoggerUtil.activityLogger.info("活动启动成功:activityId-{}", activityId); |
| | | } |
| | | |
| | | |
| | |
| | | update.setId(activityId); |
| | | update.setActualFinishTime(new Date()); |
| | | update.setUpdateTime(new Date()); |
| | | luckyActivityMapper.updateByPrimaryKeySelective(update); |
| | | updateSelectiveByPrimaryKey(update); |
| | | |
| | | activity.setActualFinishTime(update.getActualFinishTime()); |
| | | //强制结束的不开奖 |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | |
| | | LoggerUtil.activityLogger.info("活动成功结束:activityId-{} force-{} remarks-{}", activityId, force, remarks); |
| | | } |
| | | |
| | | |
| | |
| | | activity.setUpdateTime(new Date()); |
| | | updateSelectiveByPrimaryKey(activity); |
| | | CMQManager.getInstance().publishActivityStateChangeMsg(new ActivityStateChangeMsgDTO(activityId, state, stateRemarks, activity.getUpdateTime())); |
| | | LoggerUtil.activityLogger.info("活动状态更改:activityId-{} state-{} stateRemarks-{}", activityId, state, stateRemarks); |
| | | } |
| | | |
| | | @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activity.id") |
| | |
| | | return luckyMQMapper.count(query); |
| | | } |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public void removeUnSendMsg(String taskId) throws LuckyMQException { |
| | | LuckyMQ old = luckyMQMapper.selectByTaskIdForUpdate(taskId); |
| | |
| | | throw new LuckyActivityJoinException(1, "添加记录出错"); |
| | | } |
| | | |
| | | LoggerUtil.activityLogger.info("参加活动成功", activityId, uid); |
| | | LoggerUtil.activityJoinLogger.info("参加活动成功:activityId-{} uid-{}", activityId, uid); |
| | | |
| | | CMQManager.getInstance().publishActivityJoinMsg(ActivityJoinMsgDTO.create(record)); |
| | | } |
| | |
| | | |
| | | |
| | | //更新状态 |
| | | LuckyActivity update = new LuckyActivity(); |
| | | update.setId(activityId); |
| | | update.setState(LuckyActivity.STATE_PRE_OPENED); |
| | | update.setStateRemarks("预开奖成功"); |
| | | update.setUpdateTime(new Date()); |
| | | luckyActivityManager.updateSelectiveByPrimaryKey(update); |
| | | luckyActivityManager.setState(activityId,LuckyActivity.STATE_PRE_OPENED,"预开奖成功"); |
| | | |
| | | //添加消息 |
| | | CMQManager.getInstance().addActivityMsg(new ActivityMQMsg(activityId, ActivityMQMsg.TYPE_OPEN_SHOW, new Date())); |
| | | } |
| | |
| | | import org.slf4j.LoggerFactory; |
| | | |
| | | public class LoggerUtil { |
| | | public static Logger activityLogger = LoggerFactory.getLogger("activityLogger"); |
| | | /** |
| | | * 活动日志 |
| | | */ |
| | | public final static Logger activityLogger = LoggerFactory.getLogger("activityLogger"); |
| | | /** |
| | | * 活动参与日志 |
| | | */ |
| | | public final static Logger activityJoinLogger = LoggerFactory.getLogger("activityJoinLogger"); |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | private LuckyActivityOpenService luckyActivityOpenService; |
| | | |
| | | private void preOpen(Long activityId, String handler) { |
| | | |
| | | try { |
| | | luckyActivityOpenService.preOpenAward(activityId); |
| | | CMQManager.getInstance().deleteActivityMsg(handler); |
| | | } catch (LuckyActivityException e) { |
| | | e.printStackTrace(); |
| | | LoggerUtil.activityLogger.error("预开奖异常:activityId-{}", activityId, e); |
| | | } catch (LuckyActivityAwardException e) { |
| | | e.printStackTrace(); |
| | | LoggerUtil.activityLogger.error("预开奖异常:activityId-{}", activityId, e); |
| | | } catch (LuckyActivityOpenException e) { |
| | | CMQManager.getInstance().deleteActivityMsg(handler); |
| | | } |
| | |
| | | if (msg != null) { |
| | | switch (msg.getType()) { |
| | | case ActivityMQMsg.TYPE_EXEC_START: |
| | | LoggerUtil.activityLogger.info("执行启动活动:"+msg.getActivityId()); |
| | | LoggerUtil.activityLogger.info("执行启动活动:activityId-{}", msg.getActivityId()); |
| | | //启动活动 |
| | | try { |
| | | luckyActivityManager.startUpActivity(msg.getActivityId()); |
| | |
| | | |
| | | break; |
| | | case ActivityMQMsg.TYPE_EXEC_FINSIH: |
| | | LoggerUtil.activityLogger.info("执行结束活动:"+msg.getActivityId()); |
| | | LoggerUtil.activityLogger.info("执行结束活动:activityId-{}", msg.getActivityId()); |
| | | //结束活动 |
| | | try { |
| | | luckyActivityManager.finishActivity(msg.getActivityId(), false, "定时结束"); |
| | | CMQManager.getInstance().deleteActivityMsg(handler); |
| | | } catch (LuckyActivityException e) { |
| | | e.printStackTrace(); |
| | | LoggerUtil.activityLogger.error("活动成功结束异常:activityId-{}", msg.getActivityId(), e); |
| | | } catch (LuckyMQException e) { |
| | | e.printStackTrace(); |
| | | LoggerUtil.activityLogger.error("活动成功结束异常:activityId-{}", msg.getActivityId(), e); |
| | | } |
| | | |
| | | break; |
| | | |
| | | |
| | | case ActivityMQMsg.TYPE_REACH_MIN_PERSON: |
| | | LoggerUtil.activityLogger.info("参与人数到达最低开奖人数:"+msg.getActivityId()); |
| | | LoggerUtil.activityLogger.info("参与人数到达最低开奖人数:activityId-{}", msg.getActivityId()); |
| | | try { |
| | | luckyActivityOpenService.reachMinPerson(msg.getActivityId()); |
| | | CMQManager.getInstance().deleteActivityMsg(handler); |
| | | } catch (LuckyActivityException e) { |
| | | e.printStackTrace(); |
| | | LoggerUtil.activityLogger.error("参与人数到达最低开奖人数异常:activityId-{}", msg.getActivityId(), e); |
| | | } |
| | | break; |
| | | |
| | | case ActivityMQMsg.TYPE_REACH_MAX_PERSON: |
| | | LoggerUtil.activityLogger.info("参与人数到达最大参与人数:"+msg.getActivityId()); |
| | | LoggerUtil.activityLogger.info("参与人数到达最大参与人数:activityId-{}", msg.getActivityId()); |
| | | try { |
| | | luckyActivityManager.finishActivity(msg.getActivityId(), false, "活动达到最大开奖人数"); |
| | | CMQManager.getInstance().deleteActivityMsg(handler); |
| | | } catch (LuckyActivityException e) { |
| | | e.printStackTrace(); |
| | | LoggerUtil.activityLogger.error("活动达到最大开奖人数,活动结束异常:activityId-{}", msg.getActivityId(), e); |
| | | } catch (LuckyMQException e) { |
| | | e.printStackTrace(); |
| | | LoggerUtil.activityLogger.error("活动达到最大开奖人数,活动结束异常:activityId-{}", msg.getActivityId(), e); |
| | | } |
| | | |
| | | |
| | | break; |
| | | |
| | | case ActivityMQMsg.TYPE_REACH_OPEN_TIME: |
| | | LoggerUtil.activityLogger.info("活动达到开奖时间:"+msg.getActivityId()); |
| | | LoggerUtil.activityLogger.info("活动达到开奖时间:activityId-{}", msg.getActivityId()); |
| | | try { |
| | | luckyActivityManager.finishActivity(msg.getActivityId(), false, "活动达到开奖时间"); |
| | | CMQManager.getInstance().deleteActivityMsg(handler); |
| | | } catch (LuckyActivityException e) { |
| | | e.printStackTrace(); |
| | | LoggerUtil.activityLogger.error("活动达到开奖时间,活动结束异常:activityId-{}", msg.getActivityId(), e); |
| | | } catch (LuckyMQException e) { |
| | | e.printStackTrace(); |
| | | LoggerUtil.activityLogger.error("活动达到开奖时间,活动结束异常:activityId-{}", msg.getActivityId(), e); |
| | | } |
| | | break; |
| | | |
| | | case ActivityMQMsg.TYPE_OPEN_SHOW: |
| | | LoggerUtil.activityLogger.info("显示开奖结果:"+msg.getActivityId()); |
| | | LoggerUtil.activityLogger.info("显示开奖结果:activityId-{}", msg.getActivityId()); |
| | | try { |
| | | luckyActivityOpenService.showOpenAward(msg.getActivityId()); |
| | | CMQManager.getInstance().deleteActivityMsg(handler); |
| | | } catch (LuckyActivityException e) { |
| | | e.printStackTrace(); |
| | | LoggerUtil.activityLogger.error("显示开奖结果异常:activityId-{}", msg.getActivityId(), e); |
| | | } catch (LuckyActivityOpenInfoException e) { |
| | | e.printStackTrace(); |
| | | LoggerUtil.activityLogger.error("显示开奖结果异常:activityId-{}", msg.getActivityId(), e); |
| | | } |
| | | break; |
| | | |
| | | case ActivityMQMsg.TYPE_EXEC_OPEN: |
| | | LoggerUtil.activityLogger.info("执行预开奖:"+msg.getActivityId()); |
| | | LoggerUtil.activityLogger.info("执行预开奖:activityId-{}", msg.getActivityId()); |
| | | preOpen(msg.getActivityId(), handler); |
| | | break; |
| | | } |
| | |
| | | server: |
| | | port: 8085 |
| | | port: 8080 |
| | | tomcat: |
| | | uri-encoding: UTF-8 |
| | | |
| | |
| | | mongodb: |
| | | username: yeshi |
| | | password: 'Yeshi2016@' |
| | | host: 193.112.35.168 |
| | | port: 27016 |
| | | #172.16.16.44 |
| | | #193.112.35.168 |
| | | host: 172.16.16.44 |
| | | port: 27017 |
| | | database: lucky |
| | | authentication-database: admin |
| | | datasource: |
| | | url: jdbc:mysql://gz-cdb-r13d0yi9.sql.tencentcdb.com:62929/ks_lucky?&useTimezone=true&serverTimezone=GMT%2B8 |
| | | #gz-cdb-r13d0yi9.sql.tencentcdb.com:62929 |
| | | #172.16.16.17:3306 |
| | | url: jdbc:mysql://172.16.16.17:3306/ks_lucky?&useTimezone=true&serverTimezone=GMT%2B8 |
| | | username: root |
| | | password: Yeshi2016@ |
| | | driver-class-name: com.mysql.jdbc.Driver |
| | |
| | | log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl |
| | | |
| | | redis: |
| | | host: 193.112.34.40 |
| | | #172.16.16.3 |
| | | #193.112.34.40 |
| | | host: 172.16.16.3 |
| | | port: 6379 |
| | | password: 'weikou2014' |
| | | timeout: 5000 |
| | |
| | | name: lucky-provider |
| | | registry: |
| | | protocol: zookeeper |
| | | address: zookeeper://192.168.3.136:2181 # 134.175.68.214 134.175.68.214:2181 |
| | | address: zookeeper://134.175.68.214:2181 # 134.175.68.214 134.175.68.214:2181 |
| | | client: curator |
| | | protocol: |
| | | name: dubbo |
| | | port: 20900 |
| | | port: 20902 |
| | | scan: |
| | | base-packages: com.ks.lucky.service.impl.remote |
| | | provider: |
| | |
| | | <property name="log.maxHistory" value="30"/> |
| | | <!--日志存储的根路径 ${catalina.base}指向每个Tomcat目录私有信息的位置, |
| | | 就是conf、logs、temp、webapps和work的父目录--> |
| | | <property name="log.filePath" value="E:/logback/lucky"/> |
| | | |
| | | <!-- E:/logback --> |
| | | <property name="log.filePath" value="/tmp/logs/lucky"/> |
| | | <!--日志展示的格式--> |
| | | <property name="log.pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n"/> |
| | | |
| | |
| | | </appender> |
| | | |
| | | |
| | | |
| | | <!-- 活动日志记录 --> |
| | | <!-- 活动日志 --> |
| | | <appender name="activityAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
| | | <file>${log.filePath}/activity/info.log</file> |
| | | <file>${log.filePath}/activity/activity.log</file> |
| | | <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
| | | <fileNamePattern>${log.filePath}/activity/info.log.zip.%d{yyyy-MM-dd}</fileNamePattern> |
| | | <fileNamePattern>${log.filePath}/activity/activity.log.zip.%d{yyyy-MM-dd}</fileNamePattern> |
| | | <maxHistory>${log.maxHistory}</maxHistory> |
| | | </rollingPolicy> |
| | | <encoder> |
| | | <pattern>${log.pattern}</pattern> |
| | | </encoder> |
| | | </appender> |
| | | |
| | | <!-- 活动参与日志 --> |
| | | <appender name="activityJoinAppender" class="ch.qos.logback.core.rolling.RollingFileAppender"> |
| | | <file>${log.filePath}/activity/activity-join.log</file> |
| | | <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> |
| | | <fileNamePattern>${log.filePath}/activity/activity-join.log.zip.%d{yyyy-MM-dd}</fileNamePattern> |
| | | <maxHistory>${log.maxHistory}</maxHistory> |
| | | </rollingPolicy> |
| | | <encoder> |
| | |
| | | |
| | | <!-- 一切logger都会继承自root,root默认的层级level为debug --> |
| | | |
| | | <logger name="activityLogger" level="INFO" additivity="false"> |
| | | <logger name="activityLogger" level="INFO" additivity="true"> |
| | | <appender-ref ref="activityAppender"></appender-ref> |
| | | </logger> |
| | | |
| | | <logger name="activityJoinLogger" level="INFO" additivity="true"> |
| | | <appender-ref ref="activityJoinAppender"></appender-ref> |
| | | </logger> |
| | | |
| | | <root level="INFO"> |
| | | <!--在控制台中输出所在层级对应level(以及大于level)的日志信息,因为这里并没有设置LevelFilter--> |
| | | <appender-ref ref="STDOUT"></appender-ref> |
New file |
| | |
| | | package com.ks.lucky; |
| | | |
| | | import com.ks.lucky.util.LoggerUtil; |
| | | import org.junit.jupiter.api.Test; |
| | | |
| | | public class LogTest { |
| | | |
| | | @Test |
| | | public void logTest() { |
| | | Long activityId = 1L; |
| | | Long uid = 1L; |
| | | try { |
| | | int i = 1 / 0; |
| | | } catch (Exception e) { |
| | | LoggerUtil.activityLogger.error("预开奖异常:activityId-{}", activityId, e); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |