TaskQueue是由SAE(新浪云)提供的分布式任务队列服务,旨在通过异步HTTP方式执行用户的任务。该服务采用分布式环境部署,确保了高可靠性和任务执行的独立性。
特点
TaskQueue的服务特点是分布式环境部署,具有高可靠性,每个worker相互隔离,并且主动负责任务执行。用户可以通过在线管理平台创建Queue,然后向Queue Push任务,放入队列的任务随即即会执行。TaskQueue的任务的执行是以HTTP方式执行的,真正执行的是用户在App中的PHP代码,所以最长执行时间和HTTP页面执行时间相同。TaskQueue服务是分布式环境部署的,具有高可靠性,每个worker相互隔离,并且主动负责任务执行。
队列分类
TaskQueue的队列分为顺序队列和并发队列。顺序队列的任务顺序执行,而并发队列中的任务则以并行的方式执行。用户还可以为每个Queue指定error callback url,当每个任务执行失败时,TaskQueue自动会调用error callback url通知开发者。
使用限制
TaskQueue的任务的最长时间不得超过30秒,同时并发队列不保证任务的有序性。所有队列类型都有最大长度,请勿使队列长期阻塞。此外,所有APP创建TaskQueue总数不超过10个,且TaskQueue的任务必须使用当前应用地址。
应用场景
TaskQueue服务主要提供针对http方式的异步任务执行,如开发者想给1000个用户发送新浪微博,如果写成:
for($i=0;$i<1000;$i++)
send_weibo();
很容易造成页面超时,因为发送任务均为同步执行。而如果使用TaskQueue则不会超时,如写成:
$array=array();
for($i=0;$i<1000;$i++)
$array[]=array('url'=>"http://", "postdata"=>user[$i]);
$queue->addTask($array);
服务限制与配额
SAE设置服务限制和配额的目的是为了防止个别用户攻击和滥用,从而在公有云计算平台上保证绝大多数开发者的正常使用.服务限制和配额设定是在门户网站新浪自身长期运维的基础上经过严格计算得出的,所以正常使用一般不会出现问题。经过SAE 实际统计,99%的应用不会受到任何影响。当您发现您的某项服务超过限制或者超配时,请先阅读相关文档确认限制和配额的具体数值,再检查自己的程序是否存在使用不当的情况,如果仍然解决不了,可以和SAE官方联系。
服务限制
单任务超时限制300秒
单用户创建的最大队列数10
注意:由于TaskQueue服务是回调HTTP服务,所以会受到Runtime内核的限制。
分钟配额
服务请求数cpu时间流入带宽流出带宽
TaskQueue20,000=>40,00060s=>100s10MB=>20M10MB=>20M
参考资料 >
新浪云SAE禁止指定IP访问教程.百度经验.2024-11-28
SAE搭建Discuz教程、新浪SAE免费建站.百度经验.2024-11-28
如何申请加入新浪的SinaAppEngine(SAE)?.百度经验.2024-11-28