package cz.cuni.mff.d3s.been.objectrepository;
import com.hazelcast.core.IQueue;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Fail action on an {@link IQueue}
*
* @param <T> Type of queue items
*
* @author darklight
*/
public class QueueFailAction<T> implements FailAction<T> {
private static final Logger log = LoggerFactory.getLogger(QueueFailAction.class);
private final IQueue<T> queue;
QueueFailAction(IQueue<T> queue) {
this.queue = queue;
}
@Override
public void perform(T on) {
try {
queue.put(on);
} catch (InterruptedException e) {
log.error("Requeue action interrupted. Data lost: {}", on);
}
}
}