播放!吹嘘它的异步HTTP处理功能,虽然我不清楚其他什么是真正的异步(非阻塞 和 没有线程切换。)在我阅读的异步示例中,就像下面从Play中获取的那个!框架食谱:
public static void generateInvoice(Long orderId) { Order order = Order.findById(orderId); // #a InputStream is = await(new OrderAsPdfJob(order).now()); // #b renderBinary(is); }
他们专注于#b的漫长/昂贵的“业务逻辑”步骤,但我关注的是#a的数据库调用。实际上,许多应用程序中的大多数控制器方法只会尝试对DB执行多个CRUD,例如:
public static void generateInvoice(Long orderId) { Order order = Order.findById(orderId); // #a render(order); }
我特别关注在提供此数据库访问模式时使用“少量线程”的说法。
所以问题是
答案 0 :(得分:1)
我不相信Play的异步功能是值得的,因为它使代码和测试变得复杂多少。也许如果你需要在一台机器上每秒处理数千个请求,同时调用慢速服务。