при выполнении действия readcsv, для обработки данных потребуется несколько минут, в зависимости от размера файла, поэтому, когда он выполняется, я хочу знать, как показывать сообщение пользователю, чтобы сообщить им что данные в процессе .. ТНХпри запуске действия контроллера, показать сообщение пользователя
def readcsv() {
redirect(action: "list")
flash.message = "okokokok"
def list = []
def dir = new File("C:/Users/User/Desktop/Summarize_20141212/ONE_FILE")
dir.eachFileRecurse (FileType.FILES) { file ->
list << file
}
list.each {
File file = new File(it.path)
def sql = groovy.sql.Sql.newInstance("jdbc:postgresql://localhost:5432/new",
'postgres', 'sa', "org.postgresql.Driver")
def linecount = 0
file.eachLine() { line ->
if (line.trim().size() == 0) {
return null
} else {
def field = []
def tokens = line.split(',(?=([^\"]*\"[^\"]*\")*[^\"]*$)')
file.name.lastIndexOf('.').with { it != -1 ? file.name[0..<it] : file.name }
linecount++
field.push(file.name)
for (String t : tokens) {
field.push(t)
}
while (field.size() < 10) {
field.push("")
}
if (linecount > 1) {
sql.execute('insert into read_csv(version,col1,col2,col3,col4,col5,col6,col7,col8,col9,col10) ' +
'VALUES (0,?,?,?,?,?,?,?,?,?,?)', field)
System.out.println(field);
}
}
}
}
}
есть ли какой-либо оператор, такой как asyncProcess.end() render .....? –
async не связан с действиями вашего приложения, после его запуска он будет делать то, что ему нужно делать в фоновом режиме (не зная, что именно это вызвало его и т. Д. И т. Д.). Как и рендер, есть другая команда с именем forward, которую вы могли бы использовать за пределами вашего asyncProcess.start. Я обновлю свой ответ. – Vahid
kk ждет обновления u.xx снова –