sunlightcs 7 лет назад
Родитель
Сommit
c9e7a8eb84

+ 7 - 0
Dockerfile

@@ -0,0 +1,7 @@
+FROM java:8
+EXPOSE 80
+
+VOLUME /tmp
+ADD renren-fast-1.2.0.jar /app.jar
+RUN bash -c 'touch /app.jar'
+ENTRYPOINT ["java","-jar","/app.jar"]

+ 6 - 0
docker-compose.yml

@@ -0,0 +1,6 @@
+version: '2'
+services:
+  campus:
+    image: renren/fast
+    ports:
+      - "80:80"

+ 24 - 0
pom.xml

@@ -200,6 +200,30 @@
 					<displayCommandOutputs>true</displayCommandOutputs>
 				</configuration>
 			</plugin>
+			<plugin>
+				<groupId>com.spotify</groupId>
+				<artifactId>docker-maven-plugin</artifactId>
+				<version>0.4.14</version>
+				<!--<executions>-->
+					<!--<execution>-->
+						<!--<phase>package</phase>-->
+						<!--<goals>-->
+							<!--<goal>build</goal>-->
+						<!--</goals>-->
+					<!--</execution>-->
+				<!--</executions>-->
+				<configuration>
+					<imageName>renren/fast</imageName>
+					<dockerDirectory>${project.basedir}</dockerDirectory>
+					<!--<resources>-->
+						<!--<resource>-->
+							<!--<targetPath>/</targetPath>-->
+							<!--<directory>${project.build.directory}</directory>-->
+							<!--<include>${project.build.finalName}.jar</include>-->
+						<!--</resource>-->
+					<!--</resources>-->
+				</configuration>
+			</plugin>
 		</plugins>
 	</build>
 

+ 1 - 1
src/main/java/io/renren/common/aspect/RedisAspect.java

@@ -21,7 +21,7 @@ import org.springframework.context.annotation.Configuration;
 public class RedisAspect {
     private Logger logger = LoggerFactory.getLogger(getClass());
     //是否开启redis缓存  true开启   false关闭
-    @Value("${spring.redis.open: #{false}}")
+    @Value("${spring.redis.open: false}")
     private boolean open;
 
     @Around("execution(* io.renren.common.utils.RedisUtils.*(..))")

+ 0 - 2
src/main/java/io/renren/common/aspect/SysLogAspect.java

@@ -92,6 +92,4 @@ public class SysLogAspect {
 		//保存系统日志
 		sysLogService.save(sysLog);
 	}
-
-	
 }

+ 1 - 1
src/main/java/io/renren/common/exception/RRExceptionHandler.java

@@ -20,7 +20,7 @@ public class RRExceptionHandler {
 	private Logger logger = LoggerFactory.getLogger(getClass());
 
 	/**
-	 * 自定义异常
+	 * 处理自定义异常
 	 */
 	@ExceptionHandler(RRException.class)
 	public R handleRRException(RRException e){

+ 0 - 14
src/main/java/io/renren/common/utils/ShiroUtils.java

@@ -1,6 +1,5 @@
 package io.renren.common.utils;
 
-import io.renren.common.exception.RRException;
 import io.renren.modules.sys.entity.SysUserEntity;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.session.Session;
@@ -43,17 +42,4 @@ public class ShiroUtils {
 		return SecurityUtils.getSubject().getPrincipal() != null;
 	}
 
-	public static void logout() {
-		SecurityUtils.getSubject().logout();
-	}
-	
-	public static String getKaptcha(String key) {
-		Object kaptcha = getSessionAttribute(key);
-		if(kaptcha == null){
-			throw new RRException("验证码已失效");
-		}
-		getSession().removeAttribute(key);
-		return kaptcha.toString();
-	}
-
 }

+ 1 - 1
src/main/java/io/renren/modules/api/interceptor/AuthorizationInterceptor.java

@@ -36,7 +36,7 @@ public class AuthorizationInterceptor extends HandlerInterceptorAdapter {
             return true;
         }
 
-        //如果有@IgnoreAuth注解,则不验证token
+        //如果有@AuthIgnore注解,则不验证token
         if(annotation != null){
             return true;
         }

+ 3 - 3
src/main/java/io/renren/modules/job/config/ScheduleConfig.java

@@ -33,9 +33,9 @@ public class ScheduleConfig {
         //JobStore配置
         prop.put("org.quartz.jobStore.class", "org.quartz.impl.jdbcjobstore.JobStoreTX");
         //集群配置
-//        prop.put("org.quartz.jobStore.isClustered", "true");
-//        prop.put("org.quartz.jobStore.clusterCheckinInterval", "15000");
-//        prop.put("org.quartz.jobStore.maxMisfiresToHandleAtATime", "1");
+        prop.put("org.quartz.jobStore.isClustered", "true");
+        prop.put("org.quartz.jobStore.clusterCheckinInterval", "15000");
+        prop.put("org.quartz.jobStore.maxMisfiresToHandleAtATime", "1");
 
         prop.put("org.quartz.jobStore.misfireThreshold", "12000");
         prop.put("org.quartz.jobStore.tablePrefix", "QRTZ_");

+ 2 - 1
src/main/java/io/renren/modules/job/task/TestTask.java

@@ -24,7 +24,8 @@ public class TestTask {
 	
 	@Autowired
 	private SysUserService sysUserService;
-	
+
+	//定时任务只能接受一个参数;如果有多个参数,使用json数据即可
 	public void test(String params){
 		logger.info("我是带参数的test方法,正在被执行,参数为:" + params);
 		

+ 1 - 1
src/main/java/io/renren/modules/job/utils/ScheduleJob.java

@@ -34,7 +34,7 @@ public class ScheduleJob extends QuartzJobBean {
 		String jsonJob = context.getMergedJobDataMap().getString(ScheduleJobEntity.JOB_PARAM_KEY);
 		ScheduleJobEntity scheduleJob = new Gson().fromJson(jsonJob, ScheduleJobEntity.class);
 
-		//获取spring bean
+		//获取scheduleJobLogService
         ScheduleJobLogService scheduleJobLogService = (ScheduleJobLogService) SpringContextUtils.getBean("scheduleJobLogService");
         
         //数据库保存执行记录

+ 8 - 7
src/main/java/io/renren/modules/job/utils/ScheduleUtils.java

@@ -19,14 +19,14 @@ public class ScheduleUtils {
     /**
      * 获取触发器key
      */
-    public static TriggerKey getTriggerKey(Long jobId) {
+    private static TriggerKey getTriggerKey(Long jobId) {
         return TriggerKey.triggerKey(JOB_NAME + jobId);
     }
     
     /**
      * 获取jobKey
      */
-    public static JobKey getJobKey(Long jobId) {
+    private static JobKey getJobKey(Long jobId) {
         return JobKey.jobKey(JOB_NAME + jobId);
     }
 
@@ -37,7 +37,7 @@ public class ScheduleUtils {
         try {
             return (CronTrigger) scheduler.getTrigger(getTriggerKey(jobId));
         } catch (SchedulerException e) {
-            throw new RRException("获取定时任务CronTrigger出现异常", e);
+            throw new RRException("getCronTrigger异常,请检查qrtz开头的表,是否有脏数据", e);
         }
     }
 
@@ -46,15 +46,16 @@ public class ScheduleUtils {
      */
     public static void createScheduleJob(Scheduler scheduler, ScheduleJobEntity scheduleJob) {
         try {
-        	//构建job信息
+        	//构建job
             JobDetail jobDetail = JobBuilder.newJob(ScheduleJob.class).withIdentity(getJobKey(scheduleJob.getJobId())).build();
 
-            //表达式调度构建器
+            //构建cron
             CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(scheduleJob.getCronExpression())
             		.withMisfireHandlingInstructionDoNothing();
 
-            //按新的cronExpression表达式构建一个新的trigger
-            CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(getTriggerKey(scheduleJob.getJobId())).withSchedule(scheduleBuilder).build();
+            //根据cron,构建一个CronTrigger
+            CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(getTriggerKey(scheduleJob.getJobId())).
+                    withSchedule(scheduleBuilder).build();
 
             //放入参数,运行时的方法可以获取
             jobDetail.getJobDataMap().put(ScheduleJobEntity.JOB_PARAM_KEY, new Gson().toJson(scheduleJob));

+ 15 - 15
src/main/java/io/renren/modules/oss/cloud/QcloudCloudStorageService.java

@@ -2,15 +2,15 @@ package io.renren.modules.oss.cloud;
 
 
 import com.qcloud.cos.COSClient;
-import com.qcloud.cos.ClientConfig;
-import com.qcloud.cos.request.UploadFileRequest;
-import com.qcloud.cos.sign.Credentials;
-import io.renren.common.exception.RRException;
-import net.sf.json.JSONObject;
-import org.apache.commons.io.IOUtils;
+        import com.qcloud.cos.ClientConfig;
+        import com.qcloud.cos.request.UploadFileRequest;
+        import com.qcloud.cos.sign.Credentials;
+        import io.renren.common.exception.RRException;
+        import net.sf.json.JSONObject;
+        import org.apache.commons.io.IOUtils;
 
-import java.io.IOException;
-import java.io.InputStream;
+        import java.io.IOException;
+        import java.io.InputStream;
 
 /**
  * 腾讯云存储
@@ -29,15 +29,15 @@ public class QcloudCloudStorageService extends CloudStorageService{
     }
 
     private void init(){
-    	Credentials credentials = new Credentials(config.getQcloudAppId(), config.getQcloudSecretId(),
+        Credentials credentials = new Credentials(config.getQcloudAppId(), config.getQcloudSecretId(),
                 config.getQcloudSecretKey());
-    	
-    	//初始化客户端配置
+
+        //初始化客户端配置
         ClientConfig clientConfig = new ClientConfig();
         //设置bucket所在的区域,华南:gz 华北:tj 华东:sh
         clientConfig.setRegion(config.getQcloudRegion());
-        
-    	client = new COSClient(clientConfig, credentials);
+
+        client = new COSClient(clientConfig, credentials);
     }
 
     @Override
@@ -46,7 +46,7 @@ public class QcloudCloudStorageService extends CloudStorageService{
         if(!path.startsWith("/")) {
             path = "/" + path;
         }
-        
+
         //上传到腾讯云
         UploadFileRequest request = new UploadFileRequest(config.getQcloudBucketName(), path, data);
         String response = client.uploadFile(request);
@@ -61,7 +61,7 @@ public class QcloudCloudStorageService extends CloudStorageService{
 
     @Override
     public String upload(InputStream inputStream, String path) {
-    	try {
+        try {
             byte[] data = IOUtils.toByteArray(inputStream);
             return this.upload(data, path);
         } catch (IOException e) {

+ 1 - 2
src/main/resources/application.yml

@@ -5,8 +5,7 @@ server:
         max-threads: 1000
         min-spare-threads: 30
     port: 80
-    #打开注释,则通过【http://localhost/renren-fast】访问
-    #context-path: /renren-fast
+    context-path: /renren-fast
 
 spring:
     # 环境 dev|test|pro

+ 1 - 3
src/main/resources/static/js/common.js

@@ -18,9 +18,7 @@ var url = function(name) {
 T.p = url;
 
 //请求前缀
-//var baseURL = "http://www.juziku.com/";
-//var baseURL = "/renren-fast/";
-var baseURL = "/";
+var baseURL = "/renren-fast/";
 
 //登录token
 var token = localStorage.getItem("token");