mirror of
https://github.com/tiennm99/taskbus.git
synced 2026-05-24 12:26:27 +00:00
refactor: manual bus -> task bus, merge test classes into one
This commit is contained in:
@@ -3,5 +3,6 @@ package com.miti99.taskbus.bus;
|
||||
import com.miti99.taskbus.task.Task;
|
||||
|
||||
public interface Bus {
|
||||
|
||||
void submit(Task task);
|
||||
}
|
||||
|
||||
+3
-3
@@ -5,11 +5,11 @@ import com.miti99.taskbus.task.Task;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
public class ManualBus implements Bus {
|
||||
public class TaskBus implements Bus {
|
||||
private final ExecutorService[] executors;
|
||||
private final int poolSize;
|
||||
|
||||
public ManualBus(int poolSize) {
|
||||
public TaskBus(int poolSize) {
|
||||
this.poolSize = poolSize;
|
||||
executors = new ExecutorService[poolSize];
|
||||
for (int i = 0; i < poolSize; i++) {
|
||||
@@ -17,7 +17,7 @@ public class ManualBus implements Bus {
|
||||
}
|
||||
}
|
||||
|
||||
public ManualBus() {
|
||||
public TaskBus() {
|
||||
this(Runtime.getRuntime().availableProcessors());
|
||||
}
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
package com.miti99.taskbus.task;
|
||||
|
||||
public interface Task {
|
||||
|
||||
/**
|
||||
* Dùng để xác định task này sẽ được thực thi trên thread nào. VD dùng công thức hash % poolSize
|
||||
*
|
||||
* @return hash
|
||||
*/
|
||||
int hash();
|
||||
|
||||
/** Thực thi task */
|
||||
void execute();
|
||||
}
|
||||
|
||||
@@ -3,13 +3,10 @@ package com.miti99.taskbus.bus.impl;
|
||||
import com.miti99.taskbus.bus.Bus;
|
||||
import com.miti99.taskbus.task.event.UserLoginEvent;
|
||||
import com.miti99.taskbus.task.request.SendMessageRequest;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
@RequiredArgsConstructor
|
||||
public abstract class BusTest {
|
||||
private final Bus bus;
|
||||
|
||||
void submitTasks() {
|
||||
class BusTest {
|
||||
void submitTasks(Bus bus) {
|
||||
bus.submit(new UserLoginEvent(1));
|
||||
bus.submit(new SendMessageRequest(1, "msg1"));
|
||||
bus.submit(new SendMessageRequest(1, "msg2"));
|
||||
@@ -21,4 +18,16 @@ public abstract class BusTest {
|
||||
bus.submit(new SendMessageRequest(2, "msg3"));
|
||||
bus.submit(new SendMessageRequest(2, "msg4"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void testNormalBus() {
|
||||
Bus bus = new NormalBus();
|
||||
submitTasks(bus);
|
||||
}
|
||||
|
||||
@Test
|
||||
void testTaskBus() {
|
||||
Bus bus = new TaskBus();
|
||||
submitTasks(bus);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
package com.miti99.taskbus.bus.impl;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class ManualBusTest extends BusTest {
|
||||
|
||||
public ManualBusTest() {
|
||||
super(new ManualBus());
|
||||
}
|
||||
|
||||
@Test
|
||||
void runTest() {
|
||||
submitTasks();
|
||||
}
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package com.miti99.taskbus.bus.impl;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
class NormalBusTest extends BusTest {
|
||||
|
||||
public NormalBusTest() {
|
||||
super(new NormalBus());
|
||||
}
|
||||
|
||||
@Test
|
||||
void runTest() {
|
||||
submitTasks();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user