当前位置: 首页 > 知识库问答 >
问题:

如何将自定义执行器注入到播放应用程序中?

姜磊
2023-03-14
 public class ServiceA{

     final Executor executionContext;

     @Inject
     public ServiceA(ActorSystem system) {
        this.executionContext = system.dispatchers().lookup("akka.actor.db-context");
 }
 public class ServiceA{

     final Executor executionContext;

     @Inject
     public ServiceA(Executor dbExecutionCtx) {
        this.executionContext = dbExecutionCtx;
 }

共有1个答案

龙枫
2023-03-14

我使用一种模式,我可以在任何我想要的地方得到EC。我在一个单例中创建一个ActorSystem并将其注入到我的服务中。

我有一个与ActorSystems、Dispatchers和更多用于监控的设计。看看这个,看看你能不能把它整合起来。

因此,如果MyActorSystem被注入到您的类中,您可以从它访问EC。了解myDispatcher以及EC:

@Singleton
public class MyActorSystem implements IMyActorSystem{

    ActorSystem system;
    public MyActorSystem() {
        system = ActorSystem.create();

    }

    public ActorRef create() {
        final ActorRef actor = system.actorOf(
                Props.create(MyWorker.class).withDispatcher("my-disp")
        );
        return actor;
    }

    public void shutdown(){
        system.shutdown();
    }

    public ExecutionContextExecutor getDispatcher(){
        return system.dispatcher();
    }
    }

    public class MyDispatcher implements IMyDispatcher {

    MyActorSystem system;

    @Inject public MyDispatcher(MyActorSystem system) {
        this.system = system;
    }


    public CompletableFuture<Object> dispatch(final Object story) {
        List<CompletableFuture<Object>> futureList = new ArrayList<>();
        final ActorRef actor = system.create();
        final CompletableFuture<Object> completed = FutureConverter
                .fromScalaFuture(Patterns.ask(actor, story, 50000)).executeOn(system.getDispatcher())
                .thenApply(i -> (Object) i);
        return completed;
    }

    public ExecutionContextExecutor getDispatcher(){
        return system.getDispatcher();
    }
}
 类似资料:
  • 然后我的看起来像 我的问题是为空。知道怎么了吗?另外,我可以绑定我的注入器的实例而不是绑定类吗?这样,我就可以构造将数据作为参数传递的实例。

  • 实现目标 为 video 元素添加自定义样式的播放控制面板 可滑动调节音量、播放速度 可通过按钮快进、回退 可点击视频画面或按钮播放或暂停视频播放 可点击或拖动进度条选择视频播放进度 解决思路 首先,我们已经有了 HTML 文件,里面包含各种播放器用到的元素,格式也已经在 CSS 文件中帮我们设置好了 在 JS 中选择我们需要添加功能的 HTML 元素,建立好变量 用 JS 写好播放器的功能 给第

  • @Factory公共类MyFactory{ } 用于检查详细输出##的简单测试案例 picocli.CommandLine$InitializationException:无法实例化类Com.UtilityCommand:IO.Micronaut.Context.Exceptions.DependencyInjectionException:无法为类Com.UtilityCommand的字段[so

  • 在我的应用程序中,我想在目标图像上播放3D视频,我已经在c中启动了摄像头,能够使用自定义视图在目标图像上设置3D图像,现在我的要求是在目标图像上播放3D视频,而不是3D图像,我已经尝试使用自定义GLSURFACHEVIEW播放视频。下面是我的代码,但未调用onSurfaceCreated方法。 调用自定义GLsurfaceview: 我不知道我在哪里失踪了。提前感谢。

  • 我正在编写一个定制的ThreadPoolExecutor,具有以下额外功能:- > 如果有理想的线程,并且随着任务的到来,将该任务分配到队列中,而不是将其添加到队列中。 如果所有线程(最大池大小)都忙,则在新任务到来时,使用RejectionHandler的reject方法将它们添加到队列中 我已经重写了线程池执行程序的java 1.5版本的执行方法。 新守则如下:- 遗留代码如下所示:- 现在正

  • 我有两个类,类A和类B。A是一个用于在RCP应用程序中显示零件的类,它在应用程序模型中定义。B是一个用于检索数据的自定义类,每当数据发生更改时,它都应该通知类a更新相关UI。我在这里问了一个问题,关于如何使这两个类协调。然而,现在的问题是,由于B未在应用程序模型中定义,所以每当我调用eventBroker时,它都返回null。类B中的post()。 当我调用B类时,我尝试了以下方式: 我不知道如何