Skip to content

Commit

Permalink
#45 [Add] ShedLock 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
JSoi committed Jul 30, 2022
1 parent c7eea0c commit f760fbd
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 1 deletion.
3 changes: 3 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,9 @@ dependencies {
//file upload
implementation 'commons-fileupload:commons-fileupload:1.4'
compile 'commons-io:commons-io:2.11.0'
//scheduler dependency
implementation 'net.javacrumbs.shedlock:shedlock-spring:4.36.0'
implementation 'net.javacrumbs.shedlock:shedlock-provider-jdbc-template:4.36.0'

}
tasks.named('test') {
Expand Down
2 changes: 2 additions & 0 deletions src/main/java/com/mpnp/baechelin/BaechelinApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.mpnp.baechelin.common.properties.AppProperties;
import com.mpnp.baechelin.common.properties.CorsProperties;
import net.javacrumbs.shedlock.spring.annotation.EnableSchedulerLock;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
Expand All @@ -17,6 +18,7 @@
AppProperties.class
})
@EnableScheduling
@EnableSchedulerLock(defaultLockAtMostFor = "PT30S")
@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})
@PropertySources({@PropertySource("classpath:application-key.properties")})
public class BaechelinApplication {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.mpnp.baechelin.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
import net.javacrumbs.shedlock.core.LockProvider;
import net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateLockProvider;

import javax.sql.DataSource;


@Configuration
public class SchedulerConfiguration {
@Bean
public LockProvider lockProvider(DataSource dataSource) {
return new JdbcTemplateLockProvider(
JdbcTemplateLockProvider.Configuration.builder()
.withJdbcTemplate(new JdbcTemplate(dataSource))
.usingDbTime()
.build()
);
}
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,26 @@
package com.mpnp.baechelin.store.repository;

import com.mpnp.baechelin.bookmark.domain.Bookmark;
import com.mpnp.baechelin.bookmark.domain.QBookmark;
import com.mpnp.baechelin.common.QueryDslSearch;
import com.mpnp.baechelin.common.QuerydslLocation;
import com.mpnp.baechelin.review.domain.Review;
import com.mpnp.baechelin.store.domain.QStore;
import com.mpnp.baechelin.store.domain.Store;
import com.mpnp.baechelin.store.dto.StoreCardResponseDto;
import com.mpnp.baechelin.user.domain.QUser;
import com.mpnp.baechelin.user.domain.User;
import com.querydsl.core.BooleanBuilder;
import com.querydsl.core.QueryFactory;
import com.querydsl.core.Tuple;
import com.querydsl.core.types.OrderSpecifier;
import com.querydsl.core.types.Projections;
import com.querydsl.core.types.dsl.BooleanExpression;
import com.querydsl.core.types.dsl.Expressions;
import com.querydsl.core.types.dsl.NumberPath;
import com.querydsl.jpa.impl.JPAQueryFactory;
import lombok.extern.slf4j.Slf4j;
import org.hibernate.criterion.Projection;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
Expand All @@ -23,6 +31,7 @@
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;

import static com.mpnp.baechelin.common.QuerydslLocation.locTwoPointAndConditions;
Expand Down Expand Up @@ -149,5 +158,4 @@ public List<Store> searchStores(String sido, String sigungu, String keyword, Pag
.offset(pageable.getOffset())
.fetch();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
import com.mpnp.baechelin.user.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.javacrumbs.shedlock.spring.annotation.EnableSchedulerLock;
import net.javacrumbs.shedlock.spring.annotation.SchedulerLock;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.scheduling.annotation.EnableScheduling;
Expand All @@ -36,6 +38,7 @@
@Transactional
@RequiredArgsConstructor
@EnableScheduling
@EnableSchedulerLock(defaultLockAtMostFor = "PT10S")
@Slf4j
public class StoreService {

Expand Down Expand Up @@ -229,6 +232,8 @@ public List<StoreCardResponseDto> searchStores(String sido, String sigungu, Stri
}

@Scheduled(cron = "0 0 0-23 * * *")
@SchedulerLock(name = "updateScheduler",
lockAtLeastFor = "PT30M", lockAtMostFor = "PT59M")
public void updateSchedule() {
List<Store> storeList = storeRepository.findAll();
for (Store store : storeList) {
Expand Down

0 comments on commit f760fbd

Please sign in to comment.