final Key key = ((MySendableRequestItem) req.token).key;
// Have to cache it in order to propagate it; FIXME
// Don't let a node force us to start a real request for a specific key.
// We check the datastore, take up offers if any (on a short timeout), and then quit if we still haven't fetched the data.
// Obviously this may have a marginal impact on load but it should only be marginal.
core.asyncGet(key, true, new RequestCompletionListener() {
@Override
public void onSucceeded() {
// We don't use ChosenBlockImpl so have to remove the keys from the fetching set ourselves.
sched.removeFetchingKey(key);