@Override public Boolean call() { try { ZKPropertyStore<ZNRecord> store = new ZKPropertyStore<ZNRecord>( new ZkClient(ZK_ADDR), new PropertyJsonSerializer<ZNRecord>(ZNRecord.class), _root); PropertyJsonComparator<ZNRecord> comparator = new PropertyJsonComparator<ZNRecord>(ZNRecord.class); long id = Thread.currentThread().getId(); store.setProperty("key1", _record); boolean success; do { ZNRecord current = store.getProperty("key1"); ZNRecord update = new ZNRecord(current); update.setSimpleField("thread_" + id, "simpleValue"); success = store.compareAndSet("key1", current, update, comparator); } while (!success); return Boolean.TRUE; } catch (Exception e) { LOG.error(e); return Boolean.FALSE; } }
@Override public Boolean call() { try { ZKPropertyStore<ZNRecord> store = new ZKPropertyStore<ZNRecord>( new ZkClient(ZK_ADDR), new PropertyJsonSerializer<ZNRecord>(ZNRecord.class), _root); store.setProperty("key2", _record); store.updatePropertyUntilSucceed("key2", new TestUpdater()); return Boolean.TRUE; } catch (Exception e) { LOG.error(e); return Boolean.FALSE; } }