Improvement to last commit, so that caller class names are preserved.

This commit is contained in:
CalDescent 2022-02-11 15:34:31 +00:00
parent a6aabaa7f0
commit ee1f072056
3 changed files with 40 additions and 19 deletions

View File

@ -1,7 +1,5 @@
package org.qortal.arbitrary;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.qortal.arbitrary.exception.MissingDataException;
import org.qortal.arbitrary.ArbitraryDataFile.*;
import org.qortal.arbitrary.misc.Service;
@ -12,8 +10,6 @@ import java.io.IOException;
public class ArbitraryDataBuildQueueItem extends ArbitraryDataResource {
private static final Logger LOGGER = LogManager.getLogger(ArbitraryDataBuildQueueItem.class);
private final Long creationTimestamp;
private Long buildStartTimestamp = null;
private Long buildEndTimestamp = null;
@ -99,15 +95,6 @@ public class ArbitraryDataBuildQueueItem extends ArbitraryDataResource {
return this.priority >= HIGH_PRIORITY_THRESHOLD;
}
public void log(String message) {
if (this.isHighPriority()) {
LOGGER.info(message);
}
else {
LOGGER.debug(message);
}
}
public void setFailed(boolean failed) {
this.failed = failed;
}

View File

@ -1,5 +1,7 @@
package org.qortal.controller.arbitrary;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.qortal.arbitrary.ArbitraryDataBuildQueueItem;
import org.qortal.utils.NTP;
@ -11,6 +13,8 @@ import java.util.concurrent.Executors;
public class ArbitraryDataBuildManager extends Thread {
private static final Logger LOGGER = LogManager.getLogger(ArbitraryDataBuildManager.class);
private static ArbitraryDataBuildManager instance;
private volatile boolean isStopping = false;
@ -102,7 +106,7 @@ public class ArbitraryDataBuildManager extends Thread {
return true;
}
queueItem.log(String.format("Added %s to build queue", queueItem));
log(queueItem, String.format("Added %s to build queue", queueItem));
// Added to queue
return true;
@ -150,7 +154,7 @@ public class ArbitraryDataBuildManager extends Thread {
return true;
}
queueItem.log(String.format("Added %s to failed builds list", queueItem));
log(queueItem, String.format("Added %s to failed builds list", queueItem));
// Added to queue
return true;
@ -183,4 +187,17 @@ public class ArbitraryDataBuildManager extends Thread {
public boolean getBuildInProgress() {
return this.buildInProgress;
}
private void log(ArbitraryDataBuildQueueItem queueItem, String message) {
if (queueItem == null) {
return;
}
if (queueItem.isHighPriority()) {
LOGGER.info(message);
}
else {
LOGGER.debug(message);
}
}
}

View File

@ -1,5 +1,7 @@
package org.qortal.controller.arbitrary;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.qortal.arbitrary.ArbitraryDataBuildQueueItem;
import org.qortal.arbitrary.exception.MissingDataException;
import org.qortal.controller.Controller;
@ -13,6 +15,8 @@ import java.util.Map;
public class ArbitraryDataBuilderThread implements Runnable {
private static final Logger LOGGER = LogManager.getLogger(ArbitraryDataBuilderThread.class);
public ArbitraryDataBuilderThread() {
}
@ -71,19 +75,19 @@ public class ArbitraryDataBuilderThread implements Runnable {
try {
// Perform the build
queueItem.log(String.format("Building %s... priority: %d", queueItem, queueItem.getPriority()));
log(queueItem, String.format("Building %s... priority: %d", queueItem, queueItem.getPriority()));
queueItem.build();
this.removeFromQueue(queueItem);
queueItem.log(String.format("Finished building %s", queueItem));
log(queueItem, String.format("Finished building %s", queueItem));
} catch (MissingDataException e) {
queueItem.log(String.format("Missing data for %s: %s", queueItem, e.getMessage()));
log(queueItem, String.format("Missing data for %s: %s", queueItem, e.getMessage()));
queueItem.setFailed(true);
this.removeFromQueue(queueItem);
// Don't add to the failed builds list, as we may want to retry sooner
} catch (IOException | DataException | RuntimeException e) {
queueItem.log(String.format("Error building %s: %s", queueItem, e.getMessage()));
log(queueItem, String.format("Error building %s: %s", queueItem, e.getMessage()));
// Something went wrong - so remove it from the queue, and add to failed builds list
queueItem.setFailed(true);
buildManager.addToFailedBuildsList(queueItem);
@ -102,4 +106,17 @@ public class ArbitraryDataBuilderThread implements Runnable {
}
ArbitraryDataBuildManager.getInstance().arbitraryDataBuildQueue.remove(queueItem.getUniqueKey());
}
private void log(ArbitraryDataBuildQueueItem queueItem, String message) {
if (queueItem == null) {
return;
}
if (queueItem.isHighPriority()) {
LOGGER.info(message);
}
else {
LOGGER.debug(message);
}
}
}