Я назначил выделенный пул потоков для операций с базой данных через файл конфигурации play-akka. На данный момент я ввожу услуги, которые требуют этого пула потоков с системой актеров и доступа к контексту выполнения.Как добавить пользовательский Executor в приложение для воспроизведения?
public class ServiceA{
final Executor executionContext;
@Inject
public ServiceA(ActorSystem system) {
this.executionContext = system.dispatchers().lookup("akka.actor.db-context");
}
Но это затрудняет тестирование ServiceA. То, что я хотел бы сделать вместо этого просто впрыснуть Исполнитель непосредственно, как это:
public class ServiceA{
final Executor executionContext;
@Inject
public ServiceA(Executor dbExecutionCtx) {
this.executionContext = dbExecutionCtx;
}
Как этого добиться? Я попытался создать модуль guice для инъекции Executor, но он ошибается, заявляя, что нет запущенного приложения и не имеет доступа к ActorSystem, когда это делает его обязательным для классов.
Это то, что я тоже сделал. Теперь вам нужно вызвать методы, такие как getDispatcher(), но это улучшенное решение. Я пытался исследовать, есть ли другие способы просто вводить исполнителя непосредственно без каких-либо дополнительных вызовов метода. – jesukumar