/** * {@inheritDoc} */ @Override public long startWork(Work work) throws WorkException { if (policy == null || selector == null || transport == null || work == null || !(work instanceof DistributableWork) || !startWorkDistributionEnabled) { return localStartWork(work); } else { doFirstChecks(work, WorkManager.INDEFINITE, null); checkTransport(); DistributableWork dw = (DistributableWork)work; if (policy.shouldDistribute(this, dw)) { Address dwmAddress = selector.selectDistributedWorkManager(getLocalAddress(), dw); if (dwmAddress != null && !getLocalAddress().equals(dwmAddress)) { return transport.startWork(dwmAddress, dw); } } return localStartWork(work); } }
doFirstChecks(work, WorkManager.INDEFINITE, null); checkTransport();
doFirstChecks(work, WorkManager.INDEFINITE, null); checkTransport();