1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.codelibs.fess.opensearch.config.exbhv;
17
18 import java.util.regex.Pattern;
19
20 import org.apache.commons.lang3.RandomUtils;
21 import org.apache.logging.log4j.LogManager;
22 import org.apache.logging.log4j.Logger;
23 import org.codelibs.core.lang.ThreadUtil;
24 import org.codelibs.fess.opensearch.config.bsbhv.BsScheduledJobBhv;
25 import org.codelibs.fess.opensearch.config.exentity.ScheduledJob;
26 import org.codelibs.fess.util.ComponentUtil;
27 import org.dbflute.optional.OptionalEntity;
28
29
30
31
32 public class ScheduledJobBhv extends BsScheduledJobBhv {
33
34 private static final Logger logger = LogManager.getLogger(ScheduledJobBhv.class);
35
36 private String indexName = null;
37
38 @Override
39 protected String asEsIndex() {
40 if (indexName == null) {
41 final String name = ComponentUtil.getFessConfig().getIndexConfigIndex();
42 indexName = super.asEsIndex().replaceFirst(Pattern.quote("fess_config"), name);
43 }
44 return indexName;
45 }
46
47 @Override
48 public OptionalEntity<ScheduledJob> selectByPK(final String id) {
49 Exception lastException = null;
50 for (int i = 0; i < 30; i++) {
51 try {
52 return super.selectByPK(id);
53 } catch (final Exception e) {
54 if (logger.isDebugEnabled()) {
55 logger.debug("Failed to select a job by {}", id, e);
56 }
57 lastException = e;
58 ThreadUtil.sleep(RandomUtils.nextLong(500, 5000));
59 }
60 }
61 logger.warn("Failed to select a job by {}", id, lastException);
62 return OptionalEntity.empty();
63 }
64 }