Я намерен использовать «foreach» для использования всех ядер в моем процессоре.Подвох в том, что мне нужно отправить запрос sql внутри цикла.Скрипт работает нормально с обычным циклом for, но выдает следующую ошибку, когда я изменяю его на foreach.Ошибка:
select: Interrupted system call
select: Interrupted system call
select: Interrupted system call
Error in { : task 1 failed - "expired MySQLConnection"
Код, который я использовал:
library(foreach)
library(doMC)
library(RMySQL)
library(multicore)
registerDoMC(cores=6)
m <- dbDriver("MySQL", max.con = 100)
con <- dbConnect(m, user="*****", password = "******", host ="**.**.***",dbname="dbname")
list<-dbListTables(con)
foreach(i = 1:(length(list))%dopar%{
query<-paste("SELECT * FROM ",list[i]," WHERE `CLOSE` BETWEEN 1 AND 100",sep="")
t<-dbGetQuery(con,query)
}
Хотя 'foreach' отлично работает в моей системе для всех других целей, он выдает ошибку только в случае, еслиSQL запросов.Есть ли способ отправить sql запросы внутри цикла 'foreach'?