You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dp...@apache.org on 2019/07/06 10:34:02 UTC
[ignite-teamcity-bot] 02/04: Build time collection callable: Build
running time collection implemented, to be summarized and returned
This is an automated email from the ASF dual-hosted git repository.
dpavlov pushed a commit to branch time-consumer-detection
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git
commit a0f564bc7d2ff4413baddd73b6e5c36d305bf539
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Fri Jul 5 22:10:58 2019 +0300
Build time collection callable: Build running time collection implemented, to be summarized and returned
---
.../tcbot/engine/buildtime/BuildTimeService.java | 13 +++++++---
.../apache/ignite/tcignited/build/FatBuildDao.java | 29 ++++++++++++++++++----
2 files changed, 34 insertions(+), 8 deletions(-)
diff --git a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/buildtime/BuildTimeService.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/buildtime/BuildTimeService.java
index 95dca93..512afc5 100644
--- a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/buildtime/BuildTimeService.java
+++ b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/buildtime/BuildTimeService.java
@@ -18,7 +18,9 @@
package org.apache.ignite.tcbot.engine.buildtime;
import java.time.Duration;
+import java.util.ArrayList;
import java.util.Collection;
+import java.util.List;
import javax.cache.Cache;
import javax.inject.Inject;
import org.apache.ignite.IgniteCache;
@@ -64,14 +66,14 @@ public class BuildTimeService {
Collection<String> allServers = cfg.getServerIds();
- forEachBuildRef(1, allServers);
+ List<Long> idsToCheck = forEachBuildRef(1, allServers);
- fatBuildDao.forEachFatBuild();
+ fatBuildDao.forEachFatBuild(idsToCheck);
return null;
}
- public void forEachBuildRef(int days, Collection<String> allServers) {
+ public List<Long> forEachBuildRef(int days, Collection<String> allServers) {
IgniteCache<Long, BinaryObject> cacheBin = buildRefDao.buildRefsCache().withKeepBinary();
// Ignite ignite = igniteProvider.get();
@@ -93,6 +95,7 @@ public class BuildTimeService {
}));
int cnt = 0;
+ List<Long> idsToCheck = new ArrayList<>();
try (QueryCursor<Cache.Entry<Long, BinaryObject>> cursor = query) {
for (Cache.Entry<Long, BinaryObject> next : cursor) {
@@ -118,11 +121,15 @@ public class BuildTimeService {
System.err.println("Found build at srv [" + srvId + "]: [" + buildId + "] to analyze, ts="+ startTs);
cnt++;
+
+ idsToCheck.add(key);
}
}
System.err.println("Total builds to load " + cnt);
// serversCompute.call(new BuildTimeIgniteCallable(cacheBin, stateRunning, buildDurationId));
+
+ return idsToCheck;
}
}
diff --git a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/build/FatBuildDao.java b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/build/FatBuildDao.java
index c8b46cf..11aa9ff 100644
--- a/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/build/FatBuildDao.java
+++ b/tcbot-teamcity-ignited/src/main/java/org/apache/ignite/tcignited/build/FatBuildDao.java
@@ -21,6 +21,7 @@ import com.google.common.base.Preconditions;
import com.google.common.collect.Iterables;
import java.util.Collection;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -244,16 +245,34 @@ public class FatBuildDao {
return res;
}
- public void forEachFatBuild() {
+ public void forEachFatBuild(List<Long> idsToCheck) {
IgniteCache<Long, BinaryObject> cacheBin = buildsCache.withKeepBinary();
+ int stateRunning = compactor.getStringId(BuildRef.STATE_RUNNING);
+ Integer buildDurationId = compactor.getStringIdIfPresent(Statistics.BUILD_DURATION);
+
+ Iterables.partition(idsToCheck, 32 * 10).forEach(
+ chunk -> {
+ HashSet<Long> keys = new HashSet<>(chunk);
+ Map<Long, BinaryObject> all = cacheBin.getAll(keys);
+ all.forEach((key, buildBinary) -> {
+ long runningTime = getBuildRunningTime(stateRunning, buildDurationId, buildBinary);
+ if (runningTime > 0) {
+ int buildTypeId = buildBinary.field("buildTypeId");
+ System.err.println("Running " + runningTime + "BT: " + buildTypeId);
+ }
+ });
+ }
+ );
+
+
+ if(0!=1)
+ return;
+
Ignite ignite = igniteProvider.get();
IgniteCompute serversCompute = ignite.compute(ignite.cluster().forServers());
- int stateRunning = compactor.getStringId(BuildRef.STATE_RUNNING);
- Integer buildDurationId = compactor.getStringIdIfPresent(Statistics.BUILD_DURATION);
-
serversCompute.call(new BuiltTimeIgniteCallable(stateRunning, buildDurationId));
}
@@ -264,7 +283,7 @@ public class FatBuildDao {
if (startTs == null || startTs <= 0)
return -1;
- int buildTypeId = buildBinary.field("buildTypeId");
+
int status = buildBinary.field("status");
int state = buildBinary.field("state");