草庐IT

Asynchronous

全部标签

PHP 异步网络服务

如何使用PHPSOAP扩展对Web服务进行异步调用? 最佳答案 我的直接回答应该是:你不能。PHP没有可在“用户空间”中使用的线程能力。现在如果你真的想这样做,有一些方法可以绕过它:使用exec函数在后台生成另一个进程,并通过数据库/文件系统或其他任何方式对其进行监控。使用fork函数生成另一个进程并通过数据库/文件系统或其他任何方式监控它。这2种方法的缺点是您可以使其异步,但如果您想要回调,那么它会非常棘手,而且一点也不简单。好吧,它甚至不会是回调,因为您将无法在进行异步调用的脚本上等待它。这意味着你只能有某种监控方案。我建议使用

php - 如何编写在后台运行的异步 web 服务 php

我要使用php编写后台处理Web服务,即使用户关闭浏览器也需要在后台运行,有什么方法可以使用php来完成此操作吗?更多信息是的,我正在使用symfony/php从事大型网络项目(工资单)。它需要在每个月当工资单用户来并单击处理按钮时处理。那么工资单应该在没有apache服务器超时的情况下处理。为此,我希望编写在后台运行的异步Web服务。 最佳答案 正如评论者所说,您应该使用CRONjob因为它最适合解决这类问题。但是,您需要在用户点击时启动您的作业。这是我要使用的:在用户点击时,在某个表中创建一行,或创建一个文件具有执行任务所需的参

PHP 多个 Ajax 请求 : First request block second request

我在一个页面上有2个ajax请求。我运行了第一个请求并分别启动了第二个请求。但是第二个在第一个运行后停止工作。并在第一次结束时继续。第一个请求需要很长时间-大约30-60秒,此时我需要第二个请求来显示日志,第一个请求发生了什么。我尝试使用async:true但它对我没有帮助。这是我的代码varauto_refresh=setInterval(function(){asyncGet('log.php')},1000);functionasyncGet(addr){$.ajax({url:addr,async:true,success:function(response){$('#load

php - 如何在 Symfony 3 中实现异步队列运行方法

首先,关于我的项目的一些基本信息:我有一个使用Symfony3构建的网站。对于某些任务,我正在考虑实现以运行异步PHP方法。有些事件会占用大量时间,但其结果不需要立即显现。例如:在方法newOrder中,我有函数addUserLTV,它只执行几个步骤。客户不必等待所有步骤完成,只需在基本操作后立即获得确认-'newOrder'将添加addUserLTV到队列并立即显示确认(完成运行)。队列任务将在服务器有时间执行时运行。publicfunctionaddUserLTV($userID,$addLTV){//samecode}怎么做?在symphony3中有可能吗?

php - 如何判断 curl_multi_exec 何时完成_发送_数据

我需要从PHP脚本调用网络服务。Web服务很慢,我对其响应不感兴趣,我只想向它发送数据。我正在尝试使用curl_multi_exec(下面是一个示例:http://www.jaisenmathai.com/articles/php-curl-asynchronous.html),它的第二个参数($still_running)让您知道它何时完成发送和接收。但是,同样,我只想知道我的脚本何时发送完毕。当然,如果我在脚本发送完数据之前退出脚本,Web服务就不会注册接收请求。另一种查看方式是检测PHP何时空闲,等待服务器响应。我想实现的是这个对话:PHP:您好,请保存此数据WS:好的,呵呵,让

php - 如何在 PHP 中正确分离和删除 2 个进程之间的共享内存?

我开发了一种使用PHP执行异步任务的方法,到目前为止它运行良好。基于3个扩展的逻辑PCNTL,POSIXeSemaphore.要完全控制主进程和子进程,我必须在它们之间共享任务状态和PID。这2个变量使用shm_attach共享,fork使用pcntl_fork.本题题目描述的问题与任务的状态以及它们之间的PID有关。这2个变量使用shm_attach共享方法,因为没有更多空间可用于共享创建sharedmemory.我使用了2次:在构造函数中创建共享内存var_key_pid=$this->alocatesharedMemory(getmypid(),112112105100);//1

PHP cURL 同步和异步

我想在一个项目中使用PHPcURL,在一个场景中我需要通过cURL发送数据并等待响应(并延迟所有代码,直到在cURL请求中收到响应)-同步请求,我还希望在不同的场景中异步发送数据,而不是等待cURL请求完成。是否有cURL参数或函数可用于异步发送数据而不是等待目标URL的响应以继续代码执行?现在这是我的代码,请求是同步的,默认情况下,脚本会等待目标URL发送响应。$ch=curl_init();curl_setopt($ch,CURLOPT_URL,$url);curl_setopt($ch,CURLOPT_POST,1);curl_setopt($ch,CURLOPT_RETURNT

php - 为什么只有 ASP.NET 有异步编程模型?

我使用ASP.NET。恕我直言,ASP.NET中的异步编程支持非常棒。也就是说,我们可以使用BeginXXXX/EndXXXX对方法来提高资源密集型任务的可扩展性。例如,一个操作需要从数据库中获取大量数据并将其呈现在响应网页上。如果我们有这个操作同步。处理这个请求的线程将被占用整个页面生命周期。由于线程是有限的资源,最好以异步方式编写I/O操作程序。也就是说,ASP.NET将分配线程来调用带有回调函数的BeginXXXX方法。线程调用BeginXXXX立即返回并可以安排处理其他请求。作业完成后,回调函数被触发,ASP.NET将调用EndXXXX以获取实际响应。这种异步编程模型可以充分利

php - mysqli_poll() - 第三个参数是做什么用的?

在没有任何文件的情况下beyondafunctionprototype我正在努力寻找mysqli_poll()函数的第三个参数是什么。intmysqli_poll(array&$read,array&$error,array&$reject,int$sec[,int$usec])查看(C)源代码,它似乎用资源填充$reject数组,其中...CONN_GET_STATE((*p)->data)data)==CONN_QUIT_SENT这是否意味着与服务器的连接正在关闭/关闭?还有别的吗?是否应该预先填充检查断开连接的资源?还是会自动从$read和$error添加?

java - 当一项 future 任务有预期结果时继续

我有3FutureTask对象。我希望它们被异步处理。然而,一旦FutureTasks中的一个get()方法不返回null我想继续,即我的方法(包装器)返回并且不等到其他两个FutureTasks被处理。我想到了类似的东西:privateFilewrapper(finalFilefile){ExecutorServiceexecutors=Executors.newCachedThreadPool();FilereturnFile;FutureTasknormal=...FutureTaskmedium=...FutureTaskhuge=...executors.execute(no