Skip to content

Instantly share code, notes, and snippets.

@pbogunovich
Created April 4, 2012 16:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pbogunovich/2303571 to your computer and use it in GitHub Desktop.
Save pbogunovich/2303571 to your computer and use it in GitHub Desktop.
class SocketThreadLocal extends ThreadLocal<ZMQ.Socket>
{
static final Logger log = Logger.getLogger(SocketThreadLocal.class);
private ZMQ.Context ctx;
private MQConfig config;
SocketThreadLocal(ZMQ.Context ctx, MQConfig config)
{
this.ctx = ctx;
this.config = config;
}
@Override
protected ZMQ.Socket initialValue() {
ZMQ.Socket socket = config.applyToSocket(ctx.socket(ZMQ.PUSH));
for (String host : config.hosts.split(",")) {
socket.connect(host);
}
return socket;
}
}
public class MQCache implements MessageCache
{
static final Logger log = Logger.getLogger(MQCache.class);
private SocketThreadLocal local;
private Boolean block;
@Inject
public MQCache(ZMQ.Context ctx, MQConfig config)
{
this.local = new SocketThreadLocal(ctx, config);
this.block = config.sendBlocking;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment