.onLoad <- function(libname, pkgname){
suppressMessages(require(uuid))
suppressMessages(require(rmarkdown))
QWD <- Sys.getenv('QWD')
if(QWD == "")
{
warning("Set QWD in your env!!
Sys.setenv('QWD'='fullpath to your job queue root')")
QWD <- sprintf("%s/log",getwd())
warning(paste('temporaly using QWD at:' , QWD))
}
q.status <<- data.frame(busy='busy',
normal="normal",
free="free",
waiting='inbox',
running='progress',
completed='success',
failed='failed', stringsAsFactors = FALSE)
# by user, interaction, wrote it to disk
.pkg.log <<- list(
log.dir=QWD,
script.dir=sprintf('%s/scripts',QWD),
output.dir=sprintf('%s/output',QWD),
scheduler.file=sprintf('%s/.scheduler.rda',QWD),
scheduler.shutdown=sprintf('%s/.scheduler.shutdown',QWD),
n=0,
network=q.status$normal,
n.sleep=4,
timer=-1,
queue.job.list=(data.frame(jid="0",status="*", path="0")),
inbox=list(),
outbox=list(),
progress=list(),
schedule=list(),
failed=list()
)
# log dir setup
.qdir.create()
# run one queue in background
}
.qdir.create <- function()
{
x.qdir.create <- function(name)
{
name=sprintf("%s/%s", .pkg.log$log.dir,name)
if(!file.exists(name))
dir.create(name,recursive = TRUE)
}
x.qdir.create(name='inbox')
x.qdir.create(name='outbox')
x.qdir.create(name='progress')
x.qdir.create(name='schedule')
x.qdir.create(name='failed')
x.qdir.create(name='scripts')
x.qdir.create(name='output')
x.qdir.create(name='agent')
}
is.scheduler.shutdown <- function()
{
if(file.exists(.pkg.log$scheduler.shutdown))
return(TRUE) else return(FALSE)
}
q.shutdown <- function()
{
sink(file=.pkg.log$scheduler.shutdown)
cat("shutdown")
sink()
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.