/** {@inheritDoc} */ @Override public Serializable execute() { synchronized (mux) { execCnt++; } if (log.isInfoEnabled()) log.info("Executing job: " + jobCtx.getJobId()); long now = System.currentTimeMillis(); while (!isCancelled && now < thresholdTime) { synchronized (mux) { try { mux.wait(thresholdTime - now); } catch (InterruptedException ignored) { // No-op. } } now = System.currentTimeMillis(); } synchronized (mux) { return isCancelled ? 1 : 0; } }
/** {@inheritDoc} */ @Override public Set<Long> call() throws IgniteCheckedException { assert ignite != null; if (log.isInfoEnabled()) log.info("Running GetAndIncrementJob on node: " + ignite.cluster().localNode().id()); IgniteAtomicSequence seq = ignite.atomicSequence(seqName, 0, true); assert seq != null; // Result set. Set<Long> resSet = new HashSet<>(); // Get sequence value and try to put it result set. for (int i = 0; i < retries; i++) { long val = seq.getAndIncrement(); assert !resSet.contains(val) : "Element already in set : " + val; resSet.add(val); } return resSet; }
/** {@inheritDoc} */ @Override public void spiStart(String gridName) throws IgniteSpiException { // Start SPI start stopwatch. startStopwatch(); // Ack start. if (log.isInfoEnabled()) log.info(startInfo()); }
/** {@inheritDoc} */ @Override public Collection<? extends ComputeJob> split(int gridSize, Serializable arg) { if (log.isInfoEnabled()) log.info("Splitting task [task=" + this + ", gridSize=" + gridSize + ", arg=" + arg + ']'); Collection<GridCancelTestJob> jobs = new ArrayList<>(SPLIT_COUNT); for (int i = 0; i < SPLIT_COUNT; i++) jobs.add(new GridCancelTestJob()); return jobs; }
/** {@inheritDoc} */ @Override protected Object executeJob(int gridSize, String type) { log.info(">>> Starting new grid node [currGridSize=" + gridSize + ", arg=" + type + "]"); if (type == null) throw new IllegalArgumentException("Node type to start should be specified."); IgniteConfiguration cfg = getConfig(type); // Generate unique for this VM grid name. String gridName = cfg.getGridName() + " (" + UUID.randomUUID() + ")"; // Update grid name (required to be unique). cfg.setGridName(gridName); // Start new node in current VM. Ignite g = G.start(cfg); log.info( ">>> Grid started [nodeId=" + g.cluster().localNode().id() + ", name='" + g.name() + "']"); return true; }
/** {@inheritDoc} */ @Override public Object reduce(List<ComputeJobResult> results) { if (log.isInfoEnabled()) log.info("Aggregating job [job=" + this + ", results=" + results + ']'); int res = 0; for (ComputeJobResult result : results) { assert result != null; if (result.getData() != null) res += (Integer) result.getData(); } return res; }
/** {@inheritDoc} */ @Override public void start() throws IgniteCheckedException { IpcSharedMemoryNativeLoader.load(log); pid = IpcSharedMemoryUtils.pid(); if (pid == -1) throw new IpcEndpointBindException("Failed to get PID of the current process."); if (size <= 0) throw new IpcEndpointBindException("Space size should be positive: " + size); String tokDirPath = this.tokDirPath; if (F.isEmpty(tokDirPath)) throw new IpcEndpointBindException("Token directory path is empty."); tokDirPath = tokDirPath + '/' + locNodeId.toString() + '-' + IpcSharedMemoryUtils.pid(); tokDir = U.resolveWorkDirectory(tokDirPath, false); if (port <= 0 || port >= 0xffff) throw new IpcEndpointBindException("Port value is illegal: " + port); try { srvSock = new ServerSocket(); // Always bind to loopback. srvSock.bind(new InetSocketAddress("127.0.0.1", port)); } catch (IOException e) { // Although empty socket constructor never throws exception, close it just in case. U.closeQuiet(srvSock); throw new IpcEndpointBindException( "Failed to bind shared memory IPC endpoint (is port already " + "in use?): " + port, e); } gcWorker = new GcWorker(gridName, "ipc-shmem-gc", log); new IgniteThread(gcWorker).start(); if (log.isInfoEnabled()) log.info( "IPC shared memory server endpoint started [port=" + port + ", tokDir=" + tokDir.getAbsolutePath() + ']'); }
/** {@inheritDoc} */ @Override public Serializable execute() { if (log.isInfoEnabled()) log.info("Execute TestGridifyJob.execute(" + argument(0) + ')'); TestAopTarget target = new TestAopTarget(); try { if ("1".equals(argument(0))) return target.gridifyNonDefaultClass("10"); else if ("2".equals(argument(0))) return target.gridifyNonDefaultName("20"); else if ("3".equals(argument(0))) return target.gridifyNonDefaultClassResource("30"); else if ("4".equals(argument(0))) return target.gridifyNonDefaultNameResource("40"); } catch (TestGridifyException e) { throw new RuntimeException("Failed to execute target method.", e); } assert false : "Argument must be equals to \"0\" [gridifyArg=" + argument(0) + ']'; // Never reached. return null; }
/** {@inheritDoc} */ @Override public void spiStop() throws IgniteSpiException { // Ack stop. if (log.isInfoEnabled()) log.info(stopInfo()); }
/** * Log info message to loggers. * * @param msg Message text. * @param loggers Loggers. */ private void info(String msg, IgniteLogger... loggers) { for (IgniteLogger logger : loggers) if (logger != null && logger.isInfoEnabled()) logger.info(msg); }