Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google应用程序引擎Java批处理更新_Java_Google App Engine_Bigtable_Batch Updates - Fatal编程技术网

Google应用程序引擎Java批处理更新

Google应用程序引擎Java批处理更新,java,google-app-engine,bigtable,batch-updates,Java,Google App Engine,Bigtable,Batch Updates,我需要上传一个.csv文件并将记录保存在bigtable中。 我的应用程序成功解析csv文件中的200条记录并保存到表中 这是我保存数据的代码 for (int i=0;i<lines.length -1;i++) //lines hold total records in csv file { String line = lines[i]; //The record have 3 columns integer,integer,Text if(line.leng

我需要上传一个.csv文件并将记录保存在bigtable中。 我的应用程序成功解析csv文件中的200条记录并保存到表中

这是我保存数据的代码

for (int i=0;i<lines.length -1;i++) //lines hold total records in csv file
{
   String line = lines[i]; 

   //The record have 3 columns integer,integer,Text 

   if(line.length() > 15)
   {
 int n = line.indexOf(",");

 if (n>0)
 {
  int ID = lInteger.parseInt(ine.substring(0,n));
  int n1 = line.indexOf(",", n + 2);

  if(n1 > n)
  {
     int Col1 = Integer.parseInt(line.substring(n + 1, n1));
     String Col2 = line.substring(n1 + 1);

     myTable uu = new myTable();

     uu.setId(ID);
     uu.setCol1(MobNo);

     Text t = new Text(Col2);         
     uu.setCol2(t);

       PersistenceManager pm = PMF.get().getPersistenceManager();
            pm.makePersistent(uu);             
     pm.close();
  }
    }
    }
}
for(int i=0;i 15)
{
int n=第行的indexOf(“,”);
如果(n>0)
{
int ID=lInteger.parseInt(ine.substring(0,n));
int n1=行索引(“,”,n+2);
如果(n1>n)
{
int Col1=Integer.parseInt(line.substring(n+1,n1));
字符串Col2=行子字符串(n1+1);
myTable uu=新的myTable();
uu.setId(ID);
uu.setCol1(MobNo);
文本t=新文本(Col2);
uu.setCol2(t);
PersistenceManager pm=PMF.get().getPersistenceManager();
pm.makePersistent(uu);
pm.close();
}
}
}
}
但当没有任何记录增长时,就会出现超时错误

csv文件最多可包含800条记录。 是否可以在应用程序引擎中执行此操作


(类似于批量更新)

GAE将您的应用程序请求限制为30秒,并且您无法运行长时间任务


最好的方法是将这个CSV分割成更小的块,然后逐个处理它们。如果您只能将其上载为一个大文件,则可以将其存储为二进制数据,然后使用进行处理(拆分和解析)(注意,每个请求的时间也限制为10分钟,但您始终可以创建一系列任务)。或者您可以使用后端进行处理。

您可以将您的CSV文件存储在Blobstore(或)中,并使用读取和保存数据存储中的每一行。

太好了。。。我试图使用每分钟运行的计划任务。。非常感谢。哦,是的,3年来没有引入后端,甚至任务队列也被限制在30秒之内。我应该更新我的答案,谢谢