All Downloads are FREE. Search and download functionalities are using the official Maven repository.

prerna.usertracking.UserQueryTrackingThread Maven / Gradle / Ivy

The newest version!
package prerna.usertracking;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import prerna.auth.User;
import prerna.util.Utility;

public class UserQueryTrackingThread implements Runnable {

	private static final Logger classLogger = LogManager.getLogger(UserQueryTrackingThread.class);
	
	private User user = null;
	private String engineId = null;
	private String query = null;
	private java.sql.Timestamp startTime = null;
	private java.sql.Timestamp endTime = null;
	private boolean failed = false;
	
	/**
	 * 
	 * @param user
	 * @param engineId
	 */
	public UserQueryTrackingThread(User user, String engineId) {
		this.user = user;
		this.engineId = engineId;
	}
	
	@Override
	public void run() {
		Long executionTime = null;
		if(endTime != null) {
			executionTime = endTime.getTime() - startTime.getTime();
		}
		if(this.startTime == null) {
			classLogger.warn("Storing query execution without a start time.");
		}
		UserTrackingUtils.trackQueryExecution(user, engineId, query, 
				startTime, endTime, 
				executionTime, failed);
	}
	
	public void setQuery(String query) {
		this.query = query;
	}
	
	public void setFailed() {
		this.failed = true;
	}
	
	public void setStartTimeNow() {
		this.startTime = Utility.getCurrentSqlTimestampUTC();
	}

	public void setEndTimeNow() {
		this.endTime = Utility.getCurrentSqlTimestampUTC();
	}
	
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy