我勒个去,终于把sae的taskqueue用起来了…

sae是什么, taskqueue是什么, 这些我就不多说了… 凡是用新浪sae的人都该知道的~

主要讲以下两个重要的点(说实话, 新浪sae的文档有些地方还是很隐晦的, 必须得自己摸索啊!)

1. 使用方式

sae文档中针对taskqueue的单个调用是如下说明:

$array=array();
for($i=0;$i<1000;$i++)
    $array[]=array('url'=>"http://freedemo.sinaapp.com/sendweibo.php", "postdata"=>user[$i]);
$queue->addTask($array);

实际上再往文档的后面看, 还有一段很重要很重要的代码:

//将任务推入队列
$ret = $queue->push();
var_dump($ret);

这个$queue->push(), 不写的话上面的addtask都木有用啊魂淡…幸亏老子看文档看得仔细=.=

2. 如何使用post方式添加数据(get方式的很简单, 就和平时一样xx=1&yy=2这样)

$array = array();
$array[] = array('url'=>"http://freedemo.sinaapp.com/yourtask1.php", "postdata"=>"act=test");
$array[] = array('url'=>"http://freedemo.sinaapp.com/yourtask2.php", "postdata"=>"act=test", "prior"=>true);
$queue->addTask($array);

再次看文档, 里面只有这么一小段的示例代码.

怪我太笨啊, 一直认为这个act=test的post请求是说, post过来的是”act=test”. 我当时还想, 这个和get方式的请求内容好像啊…那如果我要post多个数据, 应该是用数组的吧比如array(‘xx’=>1,’yy’=>2)这样

结果post请求的一直失败, 老子真是火大啊!

经过google+baidu+sae文档+自己尝试, 终于知道了…原来taskqueue的post请求参数就是字符串, 不是数组! 而且和get的方式一样, 依然写成xx=1&yy=2这样的形式才可以!

他大爷的…

给出这样一段简单代码, 大家可以直接把post的数组转化成字符串:

function array_join($array)
	{
		$join = array();
		if (is_array($array))
		{
			foreach ($array as $key => $value)
			{
				$join[] = $key."=".$value;
			}
		}
		return $s = implode("&", $join);
	}

那么接收请求的时候呢? 接收请求的时候又得当成是array了才行, 比如xx=1&yy=2. 解析xx就是用$_POST['xx']这样的形式…

真是不得不说, 这个参数真是令人蛋疼=.=

***后记:

我圡了…其实php就有以上这段代码的功能的, 而且比我写的肯定好上不止一点儿…

http_build_query, 这个函数, 可以直接拼装成我们post请求所需要的字符串~可以参见手册: http://php.net/manual/en/function.http-build-query.php

 

 


本文链接:https://www.poisonbian.com/post/101.html 转载需授权!

分享到:
原文链接:,转发请注明来源!
「我勒个去,终于把sae的taskqueue用起来了…」评论列表

发表评论