- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究 Playframework 概念,我一直坚持使用 AsyncController
示例,该示例说明了以下描述:
This controller contains an action that demonstrates how to write simple asynchronous code in a controller. It uses a timer to asynchronously delay sending a response for 1 second.
我在这里用粗体标记有问题的陈述。
这是 Controller 的代码,我删除了方法的描述,以免浪费问题页面上的空间。
@Singleton
public class AsyncController extends Controller {
private final ActorSystem actorSystem;
private final ExecutionContextExecutor exec;
@Inject
public AsyncControllerSO(ActorSystem actorSystem, ExecutionContextExecutor exec) {
this.actorSystem = actorSystem;
this.exec = exec;
}
public CompletionStage<Result> message() {
return getFutureMessage(1, TimeUnit.SECONDS).thenApplyAsync(Results::ok, exec);
}
private CompletionStage<String> getFutureMessage(long time, TimeUnit timeUnit) {
CompletableFuture<String> future = new CompletableFuture<>();
actorSystem.scheduler().scheduleOnce(
Duration.create(time, timeUnit),
() -> future.complete("Hi!"),
exec
);
return future;
}
}
我不明白为什么 PlayFramework 中给出异步直觉的示例强调“异步延迟定时器”功能?
根据 description of scheduleOnce方法:
Schedules a Runnable to be run once with a delay, i.e. a time period that has to pass before the runnable is executed.
后者是否意味着延迟是在与 message()
方法运行的同一线程中执行的,因此不能将其视为异步?
最佳答案
不讨论 Akka 或 Play 的细节,异步延迟的一般思想是它不会阻塞线程,所以同时可以做其他事情。当您调用 .thenApplyAsync
时,您正在设置一个回调,该回调将在未来的结果准备就绪时执行。因此调度程序知道要做什么:安排在 1 秒内运行 future(如果同时还有其他事情要做,就执行它),一旦 future 准备好,就运行回调。
关于java - 了解 Playframework 示例项目中的 AsyncController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49429252/
我最近对我的一个 ASP.NET MVC3 Controller 做了一些(相当微不足道的)更改,并将其中一个操作更改为异步操作。基本上我采用了如下代码: public ActionResult My
我是 AsyncController 的新手,请帮助我为什么我无法使用异步从数据库中获取数据: public async Task Index() { Task> objctry = T
在实现 ASP.NET MVC AsyncController 时,xxxCompleted 方法必须是 Public。我想知道这是否意味着可以直接调用 xxxCompleted 方法,或者是否使用
我正在研究 Playframework 概念,我一直坚持使用 AsyncController 示例,该示例说明了以下描述: This controller contains an action tha
我想使用 jQuery ajaxForm 将数据发布到 AsyncController 以触发某些任务。我希望用户能够在此任务完成时继续浏览其他页面。然后我想使用类似 jGrowl 显示状态消息任务完
我需要获取 asp.net MVC 的请求处理时间。我使用 IHttpModule 订阅 onBeginRequest 和 onEndRequest 事件。对于同步 Controller ,它工作得很
我们在 Beta HyperV 环境中的 MVC AsyncController 上收到 TimeoutException。在本地调试时一切正常,但是当我们部署到预生产环境时,我们得到这个错误: [T
我尝试将 id 参数与异步 iactionresult 方法一起使用,但它显示为 null。 如果我从 Controller 继承并使用 - public IActionResult Index(st
我在 ASP.net MVC 中尝试使用异步 Controller 只是为了看看它们是如何工作的。在我的一个异步操作方法中,我想通过循环几次并执行 Thread.Sleep 来模拟长时间运行的方法:
我刚刚在 asp.net mvc 2 中将我的 Controller 转换为 asyncController。(即:将操作方法 About 拆分为 AboutAsync 和 AboutComple
标题很清楚。我现在有一个继承自“Controller”类的 application-BaseController。 对于新的 .NET Framework 4.5 和 ASP.NET MVC 4,我想
AsyncController究竟是怎么做的?避免使用 ASP.NET 工作线程?如果我使用基于事件的模式(伪代码): [AsyncTimeout(60000)] public void WaitFo
我正在尝试将 Controller 中的某些操作转换为在使用 ninject 进行依赖项注入(inject)的 mvc 项目中异步运行。我按照以下步骤继承 AsyncController 并将与“X”
我们计划使用 AsyncController,因为我们的大多数请求将是长时间运行的 I/O 绑定(bind)请求。计划将此处理卸载到 CLR 线程,以便保持最大数量的 IIS 线程空闲来服务新的传入请
我们计划使用 AsyncController,因为我们的大多数请求将是长时间运行的 I/O 绑定(bind)请求。计划将此处理卸载到 CLR 线程,以便保持最大数量的 IIS 线程空闲来服务新的传入请
我有 public class FileController : AsyncController { public ActionResult Download(FormCollection for
我正在使用 AsyncController say 'AbstractAbcContoller' public class AbstractAbcContoller : AsyncController
我正在尝试将此方法 ExportTo3rdParty() 转换为使用 AsyncController: public JsonResult SaveSalesInvoice(SalesInvoice
我正在尝试学习如何在 MVC2 中使用 AsyncController,但那里的文档/教程很少。我希望采用一种普通的 Controller 方法,该方法导出到第 3 方服务的速度非常慢,并将其转换为异
今天,我想在 MVC3 Web 角色的 AsyncController 中模拟等待长时间运行的阻塞进程(5 到 30 秒)。然而,一开始,我只用了 1 秒钟,让事情顺利进行。是的,这样做是否明智值得怀
我是一名优秀的程序员,十分优秀!