public class Worker extends AbstractActor { private final PriorityQueue<Task> taskQueue = new PriorityQueue<>(); @Override public Receive createReceive() { return receiveBuilder() .match(Task.class, this::handleTask) .build(); } private void handleTask(Task task) { taskQueue.offer(task); Task nextTask = taskQueue.poll(); if (nextTask != null) { System.out.println("Executing task: " + nextTask); } } } public class WorkerTest { @Test public void testWorkerConcurrency() { ActorSystem system = ActorSystem.create(); ActorRef worker = system.actorOf(Props.create(Worker.class)); TestProbe probe = TestProbe.create(system); probe.send(worker, new Worker.Task("Task 1", 2)); probe.send(worker, new Worker.Task("Task 2", 1)); probe.send(worker, new Worker.Task("Task 3", 3)); probe.expectNoMessage(Duration.ofSeconds(10)); } }


上一篇:
下一篇:
切换中文