Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package base.jee.api.cassandra.util;
 
 
 import java.util.Date;
 
public class MarkForThrottling {
	public static void markForThrottling(Session cString keyString type) {
		PreparedStatement q = c.prepare("select attempts,updated from throttle where key_value=?");
		for(Row r : c.execute(q.bind(key))) {
			long updated = r.getLong(1);
			ResultSet rs = c.execute("select value from setting where name = 'throttle." + type + ".window'");
			for(Row r2 : rs) {
				if(updated < (new Date().getTime()/1000)-Long.parseLong(r2.getString(0))) {
					// Marking outside the throttle window, reset the attempt counter
					PreparedStatement q3 = c.prepare("update throttle set attempts=1,updated=? where key_value=?");
					c.execute(q3.bind(new Date().getTime()/1000, key));
else {
					// Marking within the throttle window, just increment the attempts counter
					PreparedStatement q3 = c.prepare("update throttle set attempts=? where key_value=?");
					c.execute(q3.bind(r.getInt(0) + 1, key));
				}
				return;
			}
			throw new IllegalStateException("System configuration setting 'throttle." + type + ".window' is missing.");
		}
		// Insert new throttle
		PreparedStatement q3 = c.prepare("insert into throttle (key_value,attempts,updated) values(?,1,?)");
		c.execute(q3.bind(keynew Date().getTime()/1000));
		return;
	}
New to GrepCode? Check out our FAQ X