我正在尝试进行AJAX调用(通过JQuery),这将启动一个相当长的过程.我希望脚本只是发送一个响应,表明进程已经启动,但是在PHP脚本运行完毕之前,JQuery不会返回响应.
我用"关闭"标题(下面)尝试了这个,还有输出缓冲; 似乎都不起作用.任何猜测?或者这是我在JQuery中需要做的事情?
<?php
echo( "We'll email you as soon as this is done." );
header( "Connection: Close" );
// do some stuff that will take a while
mail( 'dude@thatplace.com', "okay I'm done", 'Yup, all done.' );
?>
Run Code Online (Sandbox Code Playgroud) 我希望对另一台服务器上的另一个脚本发出一个简单的GET请求.我该怎么做呢?
在一种情况下,我只需要请求外部脚本而无需任何输出.
make_request('http://www.externalsite.com/script1.php?variable=45'); //example usage
Run Code Online (Sandbox Code Playgroud)
在第二种情况下,我需要获取文本输出.
$output = make_request('http://www.externalsite.com/script2.php?variable=45');
echo $output; //string output
Run Code Online (Sandbox Code Playgroud)
说实话,我不想乱用CURL,因为这不是CURL的工作.我也不想使用http_get,因为我没有PECL扩展.
fsockopen会工作吗?如果是这样,如何在不读取文件内容的情况下执行此操作?没有其他办法吗?
谢谢大家
我应该补充一下,在第一种情况下,我不想等待脚本返回任何内容.据我所知,file_get_contents()会等待页面完全加载等?
我正在尝试更新APC中的变量,并且将尝试执行此操作的许多进程.
APC不提供锁定功能,所以我正在考虑使用其他机制......到目前为止我发现的是mysql的GET_LOCK()和php的flock().还有什么值得考虑的吗?
更新:我找到了sem_acquire,但它似乎是一个阻塞锁.
我有一个php脚本,它从webservice运行并插入到DB.
crontab -e
......other cron tasks above....... ... .. .. # Run test script.php at 1610 10 16 * * * /usr/bin/wget -q -O /home/username/my_cronjobs/logs/cron_adhoc http://localhost/project/script.php
显然,在16:10,这个脚本运行两次!16:10:01和16:25:02
是不是错了,必须使用wget?或者我是否错误地设置了cron作业的时间表?
当我从浏览器运行http://localhost/project/script.php时,它只运行一次..
关于这个问题的任何想法?
我已经测试过,没有其他用户运行相同的工作......我怀疑wget的工作方式.
正如我的脚本需要至少20分钟不回送一个应答来完成(它是从webservicces拉了很多数据并保存到DB)..怀疑有一个超时或默认造成这个问题的wget重试的.
场景:
做这个的最好方式是什么?
我正在研究可能涉及长时间运行任务的PHP脚本.过程如下,用户(在我的情况下使用iOS应用程序)将数据提交给我的Web服务.部分过程需要我的PHP脚本联系第三方以验证一些提交的数据.客户端(在iPad上)无需等待第三方的响应.
伪代码:
Pull values from _POST[]
some simple validation
if _POST[] values are good
return success to client
further process submitted data with thrd party
update database
else
return error code and message
Run Code Online (Sandbox Code Playgroud)
怎么可能从我的服务器返回一个简单的JSON对象只是作为收据,并让我的PHP脚本进一步处理提交的数据.我知道我使用的第三方响应缓慢(做了几次跳跃,并且已知需要几分钟才能得到响应).