Skip to content

Commit

Permalink
@dev v0.2.1:修改包名、引入新缓存工具、日志优化
Browse files Browse the repository at this point in the history
  • Loading branch information
sleepybear1113 committed May 6, 2022
1 parent 8ba012f commit 1a10e94
Show file tree
Hide file tree
Showing 55 changed files with 263 additions and 423 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,4 +36,5 @@ build/
/out/

### 自定义 ###
application-tencent.yml
application-tencent.yml
logs/
22 changes: 19 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
<version>3.0.0-M2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.xjx</groupId>
<groupId>cn.xiejx</groupId>
<artifactId>ddt-crawler</artifactId>
<version>0.2.0</version>
<version>0.2.1</version>
<name>ddt-crawler</name>
<description>ddt-crawler</description>
<properties>
Expand All @@ -20,6 +20,12 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
Expand Down Expand Up @@ -48,6 +54,12 @@
<artifactId>commons-lang3</artifactId>
</dependency>

<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.13.2.2</version>
</dependency>

<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
Expand All @@ -63,12 +75,16 @@
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.thoughtworks.xstream/xstream -->
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.19</version>
</dependency>
<dependency>
<groupId>cn.xiejx</groupId>
<artifactId>cacher</artifactId>
<version>0.0.2</version>
</dependency>

</dependencies>

Expand Down
7 changes: 6 additions & 1 deletion readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,9 @@ create index template_name_index on template (name);

其中 selfid 为用户 id,不会变,key 为每次登录随机生成,下线即失效,所以需要账号一直在线才能使用。搜索结果如下:

![搜索物品](imgs/搜索物品.png)
![搜索物品](imgs/搜索物品.png)
# 更新日志
## v0.2.1
- 【增】:添加 logback.xml 日志文件
- 【增】:引入自建缓存工具 cacher.jar,移除原本缓存工具
- 【改】:包名从 com.xjx 改为 cn.xiejx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.xjx.ddtcrawler;
package cn.xiejx.ddtcrawler;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
Expand All @@ -7,7 +7,7 @@
/**
* @author xjx
*/
@MapperScan(basePackages = {"com.xjx.ddtcrawler.mapper"})
@MapperScan(basePackages = {"cn.xiejx.ddtcrawler.mapper"})
@SpringBootApplication
public class DdtCrawlerApplication {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.xjx.ddtcrawler.advice;
package cn.xiejx.ddtcrawler.advice;

import com.xjx.ddtcrawler.exception.MyException;
import com.xjx.ddtcrawler.vo.ResultCode;
import com.xjx.ddtcrawler.vo.ResultCodeConstant;
import cn.xiejx.ddtcrawler.exception.MyException;
import cn.xiejx.ddtcrawler.vo.ResultCode;
import cn.xiejx.ddtcrawler.vo.ResultCodeConstant;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.MethodParameter;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
package com.xjx.ddtcrawler.aspect;
package cn.xiejx.ddtcrawler.aspect;

import com.xjx.ddtcrawler.cache.CommonCache;
import com.xjx.ddtcrawler.cookie.WebUser;
import com.xjx.ddtcrawler.exception.MyException;
import cn.xiejx.cacher.Cacher;
import cn.xiejx.ddtcrawler.config.Ioc;
import cn.xiejx.ddtcrawler.cookie.WebUser;
import cn.xiejx.ddtcrawler.exception.MyException;
import jakarta.annotation.Resource;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Component;

/**
Expand All @@ -23,10 +25,11 @@ public class ConcurrentAspect {

@Resource
private HttpServletRequest request;
@Qualifier(Ioc.COMMON_CACHER_NAME)
@Resource
private CommonCache commonCache;
private Cacher<String, Long> commonCacher;

@Around("execution(* com.xjx.ddtcrawler.controller..*(..))")
@Around("execution(* cn.xiejx.ddtcrawler.controller..*(..))")
public Object aroundMethod(ProceedingJoinPoint pjd) throws Throwable {
Cookie[] cookies = request.getCookies();
if (cookies == null || cookies.length == 0) {
Expand All @@ -45,14 +48,14 @@ public Object aroundMethod(ProceedingJoinPoint pjd) throws Throwable {
Long concurrentTime = webUser.getConcurrentTime();
if (concurrentTime != null) {
// 获取上一次的请求时间
Long lastRequestTime = commonCache.getCache(getLastRequestTimeKey(id));
Long lastRequestTime = commonCacher.get(getLastRequestTimeKey(id));
// 设置本次的请求时间和过期时间
if (lastRequestTime != null) {
if (lastRequestTime + concurrentTime > now) {
throw new MyException("并发限制,限制请求间隔为 " + concurrentTime + " 毫秒");
}
}
commonCache.setCache(getLastRequestTimeKey(id), now, concurrentTime);
commonCacher.set(getLastRequestTimeKey(id), now, concurrentTime);
}

return pjd.proceed();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.xjx.ddtcrawler.config;
package cn.xiejx.ddtcrawler.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
Expand Down
24 changes: 24 additions & 0 deletions src/main/java/cn/xiejx/ddtcrawler/config/Ioc.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package cn.xiejx.ddtcrawler.config;

import cn.xiejx.cacher.Cacher;
import cn.xiejx.cacher.CacherBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.concurrent.TimeUnit;

/**
* There is description
*
* @author sleepybear
* @date 2022/05/05 02:06
*/
@Configuration
public class Ioc {
public static final String COMMON_CACHER_NAME = "commonCacher";

@Bean(COMMON_CACHER_NAME)
public <K, V> Cacher<K, V> a() {
return new CacherBuilder().showAllLogs().scheduleName(COMMON_CACHER_NAME).delay(60, TimeUnit.SECONDS).build();
}
}
12 changes: 12 additions & 0 deletions src/main/java/cn/xiejx/ddtcrawler/constants/Constant.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package cn.xiejx.ddtcrawler.constants;

/**
* There is description
*
* @author sleepybear
* @date 2022/05/05 02:42
*/
public class Constant {
public static final long ONE_DAY_SECONDS = 86400L;
public static final long ONE_DAY_MILLISECONDS = ONE_DAY_SECONDS * 1000L;
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package com.xjx.ddtcrawler.controller;
package cn.xiejx.ddtcrawler.controller;

import com.xjx.ddtcrawler.cookie.WebUser;
import com.xjx.ddtcrawler.domain.QueryUrl;
import com.xjx.ddtcrawler.domain.Result;
import com.xjx.ddtcrawler.domain.constant.AuctionConstant;
import com.xjx.ddtcrawler.exception.MyException;
import com.xjx.ddtcrawler.logic.AuctionLogic;
import cn.xiejx.cacher.Cacher;
import cn.xiejx.ddtcrawler.cookie.WebUser;
import cn.xiejx.ddtcrawler.domain.QueryUrl;
import cn.xiejx.ddtcrawler.domain.Result;
import cn.xiejx.ddtcrawler.domain.constant.AuctionConstant;
import cn.xiejx.ddtcrawler.exception.MyException;
import cn.xiejx.ddtcrawler.logic.AuctionLogic;
import jakarta.annotation.Resource;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
Expand All @@ -17,10 +19,14 @@
* @date 2021/8/1 21:15
*/
@RestController
@Slf4j
public class AuctionController {
@Resource
private AuctionLogic auctionLogic;

@Resource
private Cacher<String, String> cacher;

@RequestMapping("/auction/getAuctionItems")
public Result getItems(@RequestParam(required = false, defaultValue = "1") Integer page,
@RequestParam(required = false, defaultValue = "-1") Long userId,
Expand Down Expand Up @@ -80,4 +86,9 @@ public Result getAuctionPriceOder(String itemName,
}
return result;
}

@RequestMapping("/www")
public void a() {
log.info(cacher.getScheduleName());
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.xjx.ddtcrawler.controller;
package cn.xiejx.ddtcrawler.controller;

import com.xjx.ddtcrawler.config.ConfigBean;
import com.xjx.ddtcrawler.exception.MyException;
import cn.xiejx.ddtcrawler.exception.MyException;
import cn.xiejx.ddtcrawler.config.ConfigBean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.xjx.ddtcrawler.controller;
package cn.xiejx.ddtcrawler.controller;

import com.xjx.ddtcrawler.cookie.WebUser;
import com.xjx.ddtcrawler.exception.MyException;
import com.xjx.ddtcrawler.task.ItemTask;
import cn.xiejx.ddtcrawler.cookie.WebUser;
import cn.xiejx.ddtcrawler.exception.MyException;
import cn.xiejx.ddtcrawler.task.ItemTask;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.RestController;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.xjx.ddtcrawler.controller;
package cn.xiejx.ddtcrawler.controller;

import com.xjx.ddtcrawler.cookie.WebUser;
import com.xjx.ddtcrawler.dto.TemplateDto;
import com.xjx.ddtcrawler.exception.MyException;
import com.xjx.ddtcrawler.logic.TemplateLogic;
import cn.xiejx.ddtcrawler.cookie.WebUser;
import cn.xiejx.ddtcrawler.dto.TemplateDto;
import cn.xiejx.ddtcrawler.exception.MyException;
import cn.xiejx.ddtcrawler.logic.TemplateLogic;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.xjx.ddtcrawler.controller;
package cn.xiejx.ddtcrawler.controller;

import com.xjx.ddtcrawler.cookie.CookieHelper;
import com.xjx.ddtcrawler.cookie.WebUser;
import com.xjx.ddtcrawler.exception.MyException;
import com.xjx.ddtcrawler.logic.WebUserLogic;
import com.xjx.ddtcrawler.utils.TimeUtil;
import com.xjx.ddtcrawler.vo.MyMessage;
import cn.xiejx.ddtcrawler.cookie.WebUser;
import cn.xiejx.ddtcrawler.cookie.CookieHelper;
import cn.xiejx.ddtcrawler.exception.MyException;
import cn.xiejx.ddtcrawler.logic.WebUserLogic;
import cn.xiejx.ddtcrawler.utils.TimeUtil;
import cn.xiejx.ddtcrawler.vo.MyMessage;
import jakarta.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
Expand Down Expand Up @@ -59,9 +59,7 @@ public MyMessage createTemporaryLicense(Long expireTime, @RequestParam(required
}

long now = System.currentTimeMillis();
if (expireTime != null) {
webUser.setExpireAt(expireTime * 1000 + now);
}
webUser.setExpireTime(expireTime);
webUser.setConcurrentTime(concurrentTime);
String temporaryLicense = webUserLogic.generateTemporaryLicense(webUser);
if (expireTime == null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.xjx.ddtcrawler.cookie;
package cn.xiejx.ddtcrawler.cookie;

import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
package com.xjx.ddtcrawler.cookie;
package cn.xiejx.ddtcrawler.cookie;

import com.xjx.ddtcrawler.cache.CacheDomain;
import com.xjx.ddtcrawler.config.ConfigBean;
import com.xjx.ddtcrawler.exception.MyException;
import com.xjx.ddtcrawler.utils.EncryptedUtils;
import cn.xiejx.ddtcrawler.config.ConfigBean;
import cn.xiejx.ddtcrawler.exception.MyException;
import cn.xiejx.ddtcrawler.utils.EncryptedUtils;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;

Expand All @@ -16,9 +14,8 @@
* @author XJX
* @date 2021/8/14 12:29
*/
@EqualsAndHashCode(callSuper = true)
@Data
public class WebUser extends CacheDomain implements Serializable {
public class WebUser implements Serializable {
@Serial
private static final long serialVersionUID = 5392034256168678992L;

Expand Down Expand Up @@ -48,6 +45,7 @@ public class WebUser extends CacheDomain implements Serializable {
* 用户并发毫秒
*/
private Long concurrentTime = 500L;
private Long expireTime;

public static void setWebUser(WebUser webUser) {
WEB_USER_THREAD_LOCAL.set(webUser);
Expand Down Expand Up @@ -75,6 +73,10 @@ public static WebUser getSafeWebUser() throws MyException {
return res;
}

public Long getExpireAt() {
return this.expireTime + this.loginTime;
}

public boolean isTemporaryUser() {
return StringUtils.isNotBlank(this.temporaryLicense);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.xjx.ddtcrawler.domain;
package cn.xiejx.ddtcrawler.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package com.xjx.ddtcrawler.domain;
package cn.xiejx.ddtcrawler.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.xjx.ddtcrawler.utils.EncryptedUtils;
import com.xjx.ddtcrawler.utils.TimeUtil;
import cn.xiejx.ddtcrawler.utils.EncryptedUtils;
import cn.xiejx.ddtcrawler.utils.TimeUtil;
import lombok.Data;

import java.io.Serial;
Expand Down
Loading

0 comments on commit 1a10e94

Please sign in to comment.