forked from Qortal/qortal
Improvement to last commit, so that caller class names are preserved.
This commit is contained in:
parent
a6aabaa7f0
commit
ee1f072056
@ -1,7 +1,5 @@
|
|||||||
package org.qortal.arbitrary;
|
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.exception.MissingDataException;
|
||||||
import org.qortal.arbitrary.ArbitraryDataFile.*;
|
import org.qortal.arbitrary.ArbitraryDataFile.*;
|
||||||
import org.qortal.arbitrary.misc.Service;
|
import org.qortal.arbitrary.misc.Service;
|
||||||
@ -12,8 +10,6 @@ import java.io.IOException;
|
|||||||
|
|
||||||
public class ArbitraryDataBuildQueueItem extends ArbitraryDataResource {
|
public class ArbitraryDataBuildQueueItem extends ArbitraryDataResource {
|
||||||
|
|
||||||
private static final Logger LOGGER = LogManager.getLogger(ArbitraryDataBuildQueueItem.class);
|
|
||||||
|
|
||||||
private final Long creationTimestamp;
|
private final Long creationTimestamp;
|
||||||
private Long buildStartTimestamp = null;
|
private Long buildStartTimestamp = null;
|
||||||
private Long buildEndTimestamp = null;
|
private Long buildEndTimestamp = null;
|
||||||
@ -99,15 +95,6 @@ public class ArbitraryDataBuildQueueItem extends ArbitraryDataResource {
|
|||||||
return this.priority >= HIGH_PRIORITY_THRESHOLD;
|
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) {
|
public void setFailed(boolean failed) {
|
||||||
this.failed = failed;
|
this.failed = failed;
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package org.qortal.controller.arbitrary;
|
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.ArbitraryDataBuildQueueItem;
|
||||||
import org.qortal.utils.NTP;
|
import org.qortal.utils.NTP;
|
||||||
|
|
||||||
@ -11,6 +13,8 @@ import java.util.concurrent.Executors;
|
|||||||
|
|
||||||
public class ArbitraryDataBuildManager extends Thread {
|
public class ArbitraryDataBuildManager extends Thread {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LogManager.getLogger(ArbitraryDataBuildManager.class);
|
||||||
|
|
||||||
private static ArbitraryDataBuildManager instance;
|
private static ArbitraryDataBuildManager instance;
|
||||||
|
|
||||||
private volatile boolean isStopping = false;
|
private volatile boolean isStopping = false;
|
||||||
@ -102,7 +106,7 @@ public class ArbitraryDataBuildManager extends Thread {
|
|||||||
return true;
|
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
|
// Added to queue
|
||||||
return true;
|
return true;
|
||||||
@ -150,7 +154,7 @@ public class ArbitraryDataBuildManager extends Thread {
|
|||||||
return true;
|
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
|
// Added to queue
|
||||||
return true;
|
return true;
|
||||||
@ -183,4 +187,17 @@ public class ArbitraryDataBuildManager extends Thread {
|
|||||||
public boolean getBuildInProgress() {
|
public boolean getBuildInProgress() {
|
||||||
return this.buildInProgress;
|
return this.buildInProgress;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void log(ArbitraryDataBuildQueueItem queueItem, String message) {
|
||||||
|
if (queueItem == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (queueItem.isHighPriority()) {
|
||||||
|
LOGGER.info(message);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
LOGGER.debug(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package org.qortal.controller.arbitrary;
|
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.ArbitraryDataBuildQueueItem;
|
||||||
import org.qortal.arbitrary.exception.MissingDataException;
|
import org.qortal.arbitrary.exception.MissingDataException;
|
||||||
import org.qortal.controller.Controller;
|
import org.qortal.controller.Controller;
|
||||||
@ -13,6 +15,8 @@ import java.util.Map;
|
|||||||
|
|
||||||
public class ArbitraryDataBuilderThread implements Runnable {
|
public class ArbitraryDataBuilderThread implements Runnable {
|
||||||
|
|
||||||
|
private static final Logger LOGGER = LogManager.getLogger(ArbitraryDataBuilderThread.class);
|
||||||
|
|
||||||
public ArbitraryDataBuilderThread() {
|
public ArbitraryDataBuilderThread() {
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -71,19 +75,19 @@ public class ArbitraryDataBuilderThread implements Runnable {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
// Perform the build
|
// 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();
|
queueItem.build();
|
||||||
this.removeFromQueue(queueItem);
|
this.removeFromQueue(queueItem);
|
||||||
queueItem.log(String.format("Finished building %s", queueItem));
|
log(queueItem, String.format("Finished building %s", queueItem));
|
||||||
|
|
||||||
} catch (MissingDataException e) {
|
} 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);
|
queueItem.setFailed(true);
|
||||||
this.removeFromQueue(queueItem);
|
this.removeFromQueue(queueItem);
|
||||||
// Don't add to the failed builds list, as we may want to retry sooner
|
// Don't add to the failed builds list, as we may want to retry sooner
|
||||||
|
|
||||||
} catch (IOException | DataException | RuntimeException e) {
|
} 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
|
// Something went wrong - so remove it from the queue, and add to failed builds list
|
||||||
queueItem.setFailed(true);
|
queueItem.setFailed(true);
|
||||||
buildManager.addToFailedBuildsList(queueItem);
|
buildManager.addToFailedBuildsList(queueItem);
|
||||||
@ -102,4 +106,17 @@ public class ArbitraryDataBuilderThread implements Runnable {
|
|||||||
}
|
}
|
||||||
ArbitraryDataBuildManager.getInstance().arbitraryDataBuildQueue.remove(queueItem.getUniqueKey());
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user