Skip to content

Commit 925e233

Browse files
committed
add deep index on encounter to trigger cascade index on individual
1 parent 81fc7fe commit 925e233

File tree

2 files changed

+47
-2
lines changed

2 files changed

+47
-2
lines changed

src/main/java/org/ecocean/Encounter.java

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4311,6 +4311,51 @@ public void opensearchDocumentSerializer(JsonGenerator jgen, Shepherd myShepherd
43114311
}
43124312
}
43134313

4314+
public void opensearchIndexDeep()
4315+
throws IOException {
4316+
this.opensearchIndex();
4317+
4318+
final String encId = this.getId();
4319+
ExecutorService executor = Executors.newFixedThreadPool(4);
4320+
Runnable rn = new Runnable() {
4321+
public void run() {
4322+
Shepherd bgShepherd = new Shepherd("context0");
4323+
bgShepherd.setAction("Encounter.opensearchIndexDeep_" + encId);
4324+
bgShepherd.beginDBTransaction();
4325+
try {
4326+
Encounter enc = bgShepherd.getEncounter(encId);
4327+
if ((enc == null) || !enc.hasMarkedIndividual()) {
4328+
// bgShepherd.rollbackAndClose();
4329+
executor.shutdown();
4330+
return;
4331+
}
4332+
MarkedIndividual indiv = enc.getIndividual();
4333+
System.out.println("opensearchIndexDeep() background indexing indiv " +
4334+
indiv.getId() + " via enc " + encId);
4335+
try {
4336+
indiv.opensearchIndex();
4337+
} catch (Exception ex) {
4338+
System.out.println("opensearchIndexDeep() background indexing " +
4339+
indiv.getId() + " FAILED: " + ex.toString());
4340+
ex.printStackTrace();
4341+
}
4342+
} catch (Exception e) {
4343+
System.out.println("opensearchIndexDeep() backgrounding Encounter " + encId +
4344+
" hit an exception.");
4345+
e.printStackTrace();
4346+
} finally {
4347+
bgShepherd.rollbackAndClose();
4348+
}
4349+
System.out.println("opensearchIndexDeep() backgrounding Encounter " + encId +
4350+
" finished.");
4351+
executor.shutdown();
4352+
}
4353+
};
4354+
System.out.println("opensearchIndexDeep() begin backgrounding indiv for " + this);
4355+
executor.execute(rn);
4356+
System.out.println("opensearchIndexDeep() [foreground] finished for Encounter " + encId);
4357+
}
4358+
43144359
// given a doc from opensearch, can user access it?
43154360
public static boolean opensearchAccess(org.json.JSONObject doc, User user,
43164361
Shepherd myShepherd) {

src/main/java/org/ecocean/MarkedIndividual.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2840,8 +2840,8 @@ public void run() {
28402840
int ct = 0;
28412841
for (Encounter enc : indiv.getEncounters()) {
28422842
ct++;
2843-
System.out.println("opensearchIndexDeep() background indexing " +
2844-
enc.getId() + " via " + indivId + " [" + ct + "/" + total + "]");
2843+
System.out.println("opensearchIndexDeep() background indexing enc " +
2844+
enc.getId() + " via indiv " + indivId + " [" + ct + "/" + total + "]");
28452845
try {
28462846
enc.opensearchIndex();
28472847
} catch (Exception ex) {

0 commit comments

Comments
 (0)