java - 如何在 Google-App 上允许快速发布请求?
问题描述
我正在设置一个 android 订单接收应用程序,并且需要将订单存储在谷歌表格中。它可以工作,但是直到我在 for 循环中添加了发布请求功能。所以我通过在 for 循环中添加延迟来解决这个问题。但是,还有其他方法可以做到这一点吗?因为每次我提交订单时,应用程序都会滞后到 for 循环完成。
我添加了一个 thread.sleep 来避免这个问题,如下所示:
for (int i = 0; i < order.size(); i++){
String itemName = order.get(i);
String addOn = addOns.get(i);
String quantity = order.get(i);
quantity = quantity.substring(quantity.length() - 2, quantity.length() - 1);
itemName = itemName.substring(0, itemName.length() - 4);
System.out.println("Item ID: " + i + " " + itemName + " " + addOn + " " + quantity + " " + orderId );
try{
Thread.sleep(550); //This is the delay I added.
}catch(InterruptedException ex){
//do stuff
}
addItemToSheet(itemName,addOn,quantity,orderId);
}
if (null != getActivity()) {
((MainActivity) getActivity()).clearOrderList();
}
这是谷歌应用程序:
var ss = SpreadsheetApp.openByUrl("SPREADSHEET URL");
var sheet = ss.getSheetByName('Items');
function doPost(e){
var action = e.parameter.action;
if(action == 'addItem'){
return addItem(e);
}
}
function addItem(e){
var date = new Date();
var id = sheet.getLastRow();
var orderNum = e.parameter.orderNum;
var itemName = e.parameter.itemName;
var quantity = e.parameter.quantity;
var extra = e.parameter.extra;
sheet.appendRow([date,id,orderNum,itemName,quantity,extra]);
return ContentService.createTextOutput("Success").setMimeType(ContentService.MimeType.TEXT);
}
我可以对 java 循环或谷歌应用程序做些什么,所以我可以避免使用 thread.sleep 冻结我的应用程序直到操作完成?也许是在java中延迟的另一种方法?或在谷歌应用程序中更快的操作?
解决方案
推荐阅读
- node.js - 处理 postresql 和 nodejs 查询时出错
- node.js - npm start 停止工作,但 sudo npm start 仍然有效
- python - python lambda和常规函数之间一定有区别吗?
- r - 事后自定义对比 - glmmTMB 与 poly()
- java - Java通配符泛型在方法中的返回类型
- c# - 哪个函数/模块首先在数据库中生成 .edmx 文件?
- excel - 如何将数据框更新/写入位于 S3 存储桶中的 excel 文件中
- blockchain - Ethermint 和 Burrow 的区别
- javascript - 无法使用 asp.net Web 表单中弹出的 Bootstrap 模式将数据发布到数据库
- java - 有没有办法在类的通用参数上使用 Eclipse 外部注释?