Google은 사용자가 프로젝트와 관련된 작업 만보고 빌드를 트리거 할 수 있도록 Jenkins 상단에 대시 보드를 만들었습니다. UI는 reactJS를 사용하여 작성되며 백엔드는 JAVA REST WebServices입니다.Jenkins API 응답 조정
WebService는 Jenkins API를 호출하여 작업 정보를 가져오고 데이터를 JSON으로 변환하여 UI에 공급합니다. 현재 대시 보드에는 약 200 개의 일자리가 있습니다. Jenkins API가 세부 사항에 응답하는 데 약 2 분이 소요됩니다. API가 200 잡스의 세부 사항을 가져 오기 위해 200 번 호출 채용
Sample API Call - http://jenkins:8080/job/jobName/api/json?tree=displayName,builds[result],lastBuild[estimatedDuration,result,duration,number,timestamp,actions[causes[userName]]]
1.564 (16 개) 집행 인 이상 2000 -
젠킨스는 리눅스 박스
OracleLinux 6 x Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz/39.25 GB
젠킨스 버전에서 실행 각 직업.
API 응답을 빠르게하는 방법에 대한 조언.
나는 리눅스 박스에서 RAM을 늘리고 JVM OPTS를 조정하는 것을 고려했다. 또한 Jenkins를 최신 LTS로 업그레이드합니다.
작업에 빌드가 많이 있습니까? Jenkins 팀이 게으른로드 로딩 작업을하고 있고 어떤 버전의 개선이 있는지 알지 못합니다. 예 : 작업을로드하자 마자 모든 빌드가로드됩니다. 최신 버전에서는 렌더링 페이지/쿼리를 표시하는 데 필요한 버전을로드합니다.또한 트리 쿼리에서'builds [result]'부분은 위험 할 수 있습니다. 이전 버전에서는 (게으른 로딩과 함께) 이렇게하면 작업이 모든 빌드를로드하게됩니다. 그 이유는 페이징이 수행되지 않았기 때문입니다. 이후 버전에서는 반환 할 빌드 범위를 지정해야합니다. 기본값은 20입니다. –
우리는 작업 당 30 건의 빌드 기록을 보관했습니다. 모든 플러그인이 호환되지 않을 수도 있기 때문에 Jenkins 코어를 업그레이드 할까 걱정됩니다. 우리는 여러 플러그인을 사용하여 작업을 수행합니다. – Upen
좋아요, 게으른 로딩이 아니에요. 30 빌드는 그리 많지 않습니다. 1000+ 빌드를 가진 직업에 대해서만 정말로 문제. –