下面的讨论已经成功地说明了非阻塞web服务器对传统web应用程序没有任何好处/更好。
Django is not asynchronous, so running Django in Tornado will remove most of the performance benefits you might get from Tornado.
Play框架中存在,但它对web服务器没有任何特殊要求(它给我的印象是任何tomcat或jetty都可以工作,它们本身不支持非阻塞模型)。我的问题是:像Tomcat这样的传统web服务器如何才能使Play这样的非阻塞web框架受益?
我使用的是我通过composer安装的,并且没有做一些相对简单的事情。
我可能误解了,但实际上我想要做的是对服务器运行一个POST请求,然后继续执行代码,而无需等待响应。我现在拥有的是:
$client = new \GuzzleHttp\Client(/*baseUrl, and auth credentials here*/);
$client->post('runtime/process-instances', [
'future'=>true,
'json'=> $data // is an array
让我们假设有一个服务器,当收到带有汽车模型的请求时,会查询所有已知的汽车经销商寻找最便宜的汽车经销商,并返回价格(使用任何协议)。这个动作需要一段时间。在临时阻塞请求/响应服务器模型中,我需要
request = "audi a8" // prepare a request and one line after have the response
response = server.findCheapestCar(request) // takes 20 seconds
我不想阻塞我的客户端主线程20秒,所以希望异步执行它。我对异步事物的理解是,我可以将某种对象传递给它,并在工
我在Delphi里开发了一个消息系统。我在服务器应用程序中使用idTcpServer,在客户端应用程序中使用idTcpClient。客户端应用程序每10秒调用一次服务器,查看连接是否处于活动状态,并告诉服务器将用户状态设置为联机状态。用户也可以发送消息给他的联系人。所有这些请求后面都是服务器的响应,我在发送请求后立即通过socket.readln命令获得响应。例如,单击服务器:
TcpClient.socket.writeln('i am online');
if TcpClient.socket.readln = 'ok' then
begin
{
根据我的理解,当我们使用而等待的任务尚未完成时,执行将返回给调用方。它在服务器端运行良好(从服务器端方法本身调用异步方法)。但是当我从UI调用异步方法时会发生什么。
public class TestController : ApiController
{
IList<string> lstString = new List<string>();
public async Task<IList<string>> GetMyCollectionAsync()
{
lstStri