This just popped into my head. Naïve line-based schedule file using simple
commands together with cron could be real nice.

Creating schedules
------------------
We should have something like

  gump schedule-run --profile=public --official
  gump schedule-run --profile=public
  gump schedule-run --profile=kaffe

Which writes a file $GUMP_HOME/schedule looking like this

  gump run --profile=public --official
  gump run --profile=public
  gump run --profile=kaffe

The code would be along the lines of

 schedule_run()
 {
   local schedulefile="$GUMP_HOME/schedule"
   echo gump run $* >> $schedulefile
 }

You would also want to schedule runs immediately

 gump schedule-run-first --profile=custom --debug

Which would be something like

 schedule_run_first()
 {
   local schedulefile="$GUMP_HOME/schedule"
   echo gump run $* >> $schedulefile.new
   cat $schedulefile >> $schedulefile.new
   rm $schedulefile
   mv $schedulefile.new $schedulefile
 }

And of course there's more options like

 schedule_run_when_idle()
 {
   local pidfile="$GUMP_HOME/pygump/pygump.pid"
   if [[ ! -f "$pidfile" ]]; then
    schedule_run
   fi
 }

The next bit is to have calls to those "schedule-run" commands in the
crontab:

# the next run after midnight will be the "official" one
0 0 * * * . /home/gump/.bash_profile; gump schedule-run-first \
  --profile=public --official
0 6 * * * . /home/gump/.bash_profile; gump schedule-run \
  --profile=kaffe
0 12 * * * . /home/gump/.bash_profile; gump schedule-run \
  --profile=jdk15
0 3,9,15,18 * * * . /home/gump/.bash_profile; gump schedule-run-when-idle \
  --profile=public

Keeping schedules
-----------------
And then have something like

  gump try-to-invoke-run

Which checks to see if gump is running, and if not, takes a line from
$GUMP_HOME/schedule and executes it. Along the lines of

 try_to_invoke_run()
 {
  local pidfile="$GUMP_HOME/pygump/pygump.pid"
  if [[ ! -f "$pidfile" ]]; then
    line=remove_first_line_from_schedule
    `$line`
  fi
 }

And we run that real often from the crontab:

60/12 * * * * . /home/gump/.bash_profile; gump try-to-invoke-run

Why
---
This would ensure gump would be running just about continuously, but you
could also easily interrupt using

 gump kill
 gump schedule-run-first --profile=custom --debug

To manually change the schedule if you wanted to try something.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to