From noreply at r-forge.r-project.org Fri Apr 11 10:21:00 2014 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Fri, 11 Apr 2014 10:21:00 +0200 (CEST) Subject: [Rodbcext-commits] r53 - pkg/genutils/R Message-ID: <20140411082100.578E2186F3F@r-forge.r-project.org> Author: jaunario Date: 2014-04-11 10:20:59 +0200 (Fri, 11 Apr 2014) New Revision: 53 Modified: pkg/genutils/R/worker.r Log: in get.jobs, used function match instead of grep. Modified: pkg/genutils/R/worker.r =================================================================== --- pkg/genutils/R/worker.r 2014-03-27 06:23:25 UTC (rev 52) +++ pkg/genutils/R/worker.r 2014-04-11 08:20:59 UTC (rev 53) @@ -7,27 +7,33 @@ myjob <- vector() worker.id <- Sys.getpid() - if(!file.exists(jobfile)){ - jobs <- initjobs - save(jobs, file=jobfile) - - filelock <- data.frame(filename=character(0),worker=numeric(0)) - filelock[1,] <- NA - filelock$filename[1] <- jobfile - write.csv(filelock,"files.csv",row.names=FALSE) - + if(!file.exists("files.csv")){ + filelock <- data.frame(filename=character(0),worker=numeric(0), stringsAsFactors=FALSE) + } else { + filelock <- read.csv("files.csv",stringsAsFactors=FALSE) } + if(is.na(match(jobfile,filelock$filename))){ + jobs <- initjobs + save(jobs, file=jobfile) + new.id <- nrow(filelock)+1 + filelock[new.id,] <- NA + filelock$filename[new.id] <- jobfile + write.csv(filelock,"files.csv",row.names=FALSE) + } + tries <- 0 repeat{ filelock <- read.csv("files.csv",stringsAsFactors=FALSE) - if(is.na(filelock$worker[filelock$filename==jobfile])){ - filelock$worker[filelock$filename==jobfile] <- worker.id + if(is.na(filelock$worker[match(jobfile,filelock$filename)])){ + filelock$worker[match(jobfile,filelock$filename)] <- worker.id write.csv(filelock,"files.csv",row.names=FALSE) load(jobfile) - myjob <- jobs[1:min(workload,length(jobs))] - jobs <- jobs[!jobs %in% myjob] - save(jobs, file=jobfile) + if(length(jobs)>0){ + myjob <- jobs[1:min(workload,length(jobs))] + jobs <- jobs[!jobs %in% myjob] + save(jobs, file=jobfile) + } filelock$worker[filelock$filename==jobfile] <- NA write.csv(filelock,"files.csv",row.names=FALSE) break @@ -42,3 +48,19 @@ } return(myjob) } + +combine.output <- function(newdata, out.rdata="output.Rdata",delay=10){ + success <- FALSE + + if(!file.exists("files.csv")){ + filelock <- data.frame(filename=character(0),worker=numeric(0), stringsAsFactors=FALSE) + } else { + filelock <- read.csv("files.csv",stringsAsFactors=FALSE) + } + + if(!file.exists(out.rdata)){ + filelock <- read.csv("files.csv",stringsAsFactors=FALSE) + } + success <- TRUE + return(success) +}