@Override public void run() { try { callbackQueues.recordProgress(id, gElement.getQueueName(), element.getId(), TrackingQueue.ConsumingStatus.FINISHED_SUCCESSFULLY, "Executed"); } catch (Exception e) { LOG.error("Exception processing callback", e); } } }, executorService);
@Override public void run() { try { solverQueues.recordProgress(id, gElement.getQueueName(), solveElement.getId(), TrackingQueue.ConsumingStatus.FINISHED_SUCCESSFULLY, future.get()); } catch (Exception e) { LOG.error("Unable to record progress for cluster {}", solveElement.getId()); } } }, executorService);
if (actionOrder == null) { LOG.error("Cluster action {} does not have any provisioner actions defined", clusterAction); clusterQueues.recordProgress(id, gElement.getQueueName(), clusterElement.getId(), TrackingQueue.ConsumingStatus.FINISHED_SUCCESSFULLY, "No actions defined"); continue; if (clusterNodes == null || clusterNodes.isEmpty()) { LOG.error("Cluster {} has no nodes defined", cluster.getId()); clusterQueues.recordProgress(id, gElement.getQueueName(), clusterElement.getId(), TrackingQueue.ConsumingStatus.FINISHED_SUCCESSFULLY, "No nodes defined"); continue; clusterQueues.recordProgress(id, gElement.getQueueName(), clusterElement.getId(), TrackingQueue.ConsumingStatus.FINISHED_SUCCESSFULLY, "Scheduled"); } catch (Throwable e) { clusterQueues.recordProgress(id, gElement.getQueueName(), clusterElement.getId(), TrackingQueue.ConsumingStatus.FINISHED_SUCCESSFULLY, "Exception during scheduling");
taskQueues.recordProgress(consumerId, queueName, taskId, TrackingQueue.ConsumingStatus.FINISHED_SUCCESSFULLY, "");
jobQueues.recordProgress(consumerId, queueName, element.getId(), TrackingQueue.ConsumingStatus.FINISHED_SUCCESSFULLY, "");
taskQueues.recordProgress(consumerId, tenantId, clusterTask.getTaskId(), TrackingQueue.ConsumingStatus.FINISHED_SUCCESSFULLY, "Skipped due to job failure."); taskQueues.recordProgress(consumerId, tenantId, task.getId(), TrackingQueue.ConsumingStatus.FINISHED_SUCCESSFULLY, "Skipped due to empty task JSON.");
@Test public void testOneQueueGetQueuedAndConsumed() { QueueGroup queues = getQueueGroup(QueueType.PROVISIONER); String queueName = "tenant1"; queues.add(queueName, new Element("id1", "val")); queues.add(queueName, new Element("id2", "val")); // check being consumed is correct Assert.assertEquals(ImmutableSet.<String>of(), getIds(queues.getBeingConsumed(queueName))); // check queued is correct. Assert.assertEquals(ImmutableSet.of("id1", "id2"), getIds(queues.getQueued(queueName))); // take one element queues.take(queueName, "consumer1"); // check being consumed is correct Assert.assertEquals(ImmutableSet.of("id1"), getIds(queues.getBeingConsumed(queueName))); // check queued is correct. Assert.assertEquals(ImmutableSet.of("id2"), getIds(queues.getQueued(queueName))); // take next element queues.take(queueName, "consumer2"); // check being consumed is correct Assert.assertEquals(ImmutableSet.of("id1", "id2"), getIds(queues.getBeingConsumed(queueName))); // check queued is correct. Assert.assertEquals(ImmutableSet.<String>of(), getIds(queues.getQueued(queueName))); // finish first element queues.recordProgress("consumer1", queueName, "id1", TrackingQueue.ConsumingStatus.FINISHED_SUCCESSFULLY, "result"); // check being consumed is correct Assert.assertEquals(ImmutableSet.of("id2"), getIds(queues.getBeingConsumed(queueName))); // check queued is correct. Assert.assertEquals(ImmutableSet.<String>of(), getIds(queues.getQueued(queueName))); }
jobQueues.recordProgress(consumerId, tenantId, jobQueueElement.getId(), TrackingQueue.ConsumingStatus.FINISHED_SUCCESSFULLY, "");
@Test public void testGetSize() { QueueGroup queues = getQueueGroup(QueueType.PROVISIONER); queues.add("tenant1", new Element("id1", "val")); queues.add("tenant1", new Element("id2", "val")); queues.add("tenant1", new Element("id3", "val")); queues.add("tenant1", new Element("id4", "val")); queues.add("tenant2", new Element("id1", "val")); queues.add("tenant2", new Element("id2", "val")); queues.add("tenant3", new Element("id1", "val")); Assert.assertEquals(4, queues.size("tenant1")); Assert.assertEquals(2, queues.size("tenant2")); Assert.assertEquals(1, queues.size("tenant3")); // size includes elements being consumed queues.take("tenant1", "consumer"); Assert.assertEquals(4, queues.size("tenant1")); Assert.assertEquals(2, queues.size("tenant2")); Assert.assertEquals(1, queues.size("tenant3")); // size does not include elements that are finished being consumed queues.recordProgress("consumer", "tenant1", "id1", TrackingQueue.ConsumingStatus.FINISHED_SUCCESSFULLY, "result"); Assert.assertEquals(3, queues.size("tenant1")); Assert.assertEquals(2, queues.size("tenant2")); Assert.assertEquals(1, queues.size("tenant3")); }