티스토리 뷰

개요

  • JobRunrFire and Forget 성격의 특정 작업을 즉시 또는 예약된 시각에 분산 실행할 수 있는 오픈 소스 Java 라이브러리이다. 앞서 본 블로그의 이 글에서 소개한 적이 있는데, Spring Boot 기반 프로젝트에서 @Schedule로 시간이 오래 걸리는 배치 작업을 적극적으로 사용하는 개발자라면 훨씬 고도화되고 편리한 개념이 많아 무료 커뮤니티 버전의 사용을 추천한다. (최근에는 제작자에게 제보하여 JVM 17 환경에서 구동되지 않는 버그가 수정되기 했는데 제보에 빠르게 반응하는 편이다.)
  • JobRunr의 유료 엔터프라이즈 버전인 PRO 버전을 구매하면 추가 기능을 이용할 수 있는데 대표적으로 해당 작업을 특정 인스턴스에서만 선택적으로 실행할 수 있는 서버 태그 기능이 있다. 현재 운영 중인 프로젝트에서 이 기능을 이용하여 유용하게 배치 작업을 특정 배치 서버에서만 실행하는데 활용하고 있다.
  • 이번 글에서는 JobRunr PRO 버전 구매시 제작자에게 이메일로 수신한 라이센스 정보를 프로젝트에 적용하는 방법을 정리했다.

.m2/settings.xml

  • Maven 빌드 환경에서 JobRunr PRO의 라이센스 정보는 유저 홈 디렉토리에 .m2/settings.xml 경로에 아래 내용을 작성하면 된다. username, password 애트리뷰트에 JobRunr Pro 라이센스 구매시 받은 정보를 입력하면 된다.
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
        <server>
            <id>JobRunrPro</id>
            <username>{username}</username>
            <password>{password}</password>
        </server>
    </servers>
</settings>

pom.xml

  • Maven 빌드 환경에서 pom.xml 파일에 아래 내용을 추가한다. 공개 저장소에 없는 Pro 버전을 사용할 수 있는데 앞서 추가한 라이센스 정보를 기반으로 비공개 저장소에 인증하는 방식으로 Pro 버전의 라이브러리를 획득할 수 있다.
<repositories>
    <repository>
        <id>JobRunrPro</id>
        <url>https://repo.jobrunr.io/private-releases</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.jobrunr</groupId>
        <artifactId>jobrunr-pro-spring-boot-starter</artifactId>
        <version>5.1.1</version>
    </dependency>
</dependencies>
  • 서버 배포 파이프라인 등의 프로세스에서 유저 홈 디렉토리에 라이센스 파일을 위치하는 것이 불가능한 상황이라면 그냥 프로젝트에 포함시키면 된다. 이 경우, 빌드 시점에 settings.xml 파일의 경로를 명시적으로 지정해야 한다.

빌드 및 실행

  • Maven 빌드 환경에서 JobRunr Pro 라이센스 정보를 반영하여 프로젝트를 빌드하는 방법은 아래와 같다.
# .m2 디렉토리가 유저 홈 디렉토리에 위치할 경우 평소와 동일하게 빌드 실행
$ ./mvnw -Pdev

# .m2 디렉토리를 프로젝트 루트에 위치할 경우 --settings 옵션을 명시적으로 지정
$ ./mvnw -Pdev --settings ./.m2/settings.xml
댓글
댓글쓰기 폼