- 30
- 0
对于一个后台的api(query_status?id=1),前台有若干个id(ids=[1,2,3,4,5]),每次js取出一个id,并请求这个api,获取当前的状态,然后进入判断:1、api返回的status为true,则标记为成功并请求下一个id;2、api在15s内没有返回,则标记为超时并请求下一个。 每次只请求一个id,而且当上一个id请求完成之后再处理下一个。
目前我后台是用tornado写的,当前的代码尝试了用js去轮询,不过会阻塞前端页面
我的目的:1、如果getconfirm获取到的api的flag为true 则标记此为通过,并处理下一个,否则如果10s内都获取得到的api的flag为false,则标记为超时,并处理下一个
菜鸟代码很渣,贴出关键逻辑求大佬指点
function wait_for_resp(vid){
//cflag = getconfirm(vid);
for (let i=0;i<5;i++)
{
sleep(2000);//sleep 3s;
cflag = 0;
cflag = getconfirm(vid);//这里的目的是 1、如果getconfirm获取到的api的flag为true 则标记此为通过,并处理下一个,否则如果10s内都获取得到的api的flag为false,则标记为超时,并处理下一个
if(cflag==1){//confirm=1 pass
return 1;
break;
}
}
return 2; //timeout 15s
}
function main(){
for(let i=0;i<ar1.length;i++){
if (i==0){
runurl(ar1[i]);//runurl如果通过 则会给后台对应到这个vid=ar1[i]的confirm flag设置为true 否则默认为false
console.log('1st runned!');
}
else
{
wflag = 0;
wflag = wait_for_resp(ar1[i-1]);
console.log('wflag: '+wflag);
if (wflag==1){ //run next when the ar1[i-1] pass or timeout
document.getElementById(ar1[i-1]).setAttribute('class', 'testpagesuccess');
console.log('now set'+ar1[i-1]+'and running :'+ar1[i]);
runurl(ar1[i]);
}
else if(wflag==2){
console.log('timeout');
document.getElementById(ar1[i-1]).setAttribute('class', 'testpagefail');
runurl(ar1[i]);
}
}} - 共 0 条
- 全部回答
-
废人 普通会员 1楼
这个问题可以通过编程语言来解决,下面是一个使用Python的例子:
```python def call_api(): for i in range(10): if call_api(): print(f'API call {i} successful') call_api()
if name == 'main': call_api() ```
在这个例子中,我们定义了一个函数
call_api,它会请求10次API。每次请求后,如果API返回True,我们就打印一条消息并调用call_api函数的下一个版本。如果你的API接口是一个Web服务,你可以使用Python的
http.server库来创建一个Web服务器,监听指定的端口。然后,你可以使用一个像Flask这样的Web框架来创建一个应用,这个应用可以作为Web服务器的监听器。这样,你就可以通过前端的请求来调用API了。如果你的API接口是一个数据库查询,你可以使用Python的
sqlite3库来创建一个数据库,并使用SQL查询来执行API请求。然后,你可以使用一个像Django这样的Web框架来创建一个应用,这个应用可以作为数据库查询的监听器。这样,你就可以通过前端的请求来调用API了。
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
