Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.scheduler.doSubTasks
on doSubTasks (adrtable, fllog=true) { //call all the scripts in the table, with logging
<<Notes
<<12/18/98; 11:57:57 AM by DW
<<For convenience, a few versions ago, we added a higher level to the scheduler, allowing scripts to be stored in user.scheduler.overnight and hourly. In 6.0 we also add a everyMinute table. In 6.0 we also allow the items in these table to be addresses of scripts, making maintenence easier for add-on modules. We also added a very easy way for tasks to add information to the log about what they did. It's tricky, and the details are hidden for the most part in this script.
<<Sun, 07 Mar 1999 12:08:30 GMT by AR
<<Added conversion of pre-6.0 tasks from string objects to script objects.
on callWithLogging (adrscript) {
new (tabletype, @taskInfo.subTaskInfo);
try {
callScript (string (adrscript), {}, @taskinfo)}
else {
taskInfo.subTaskInfo.scriptError = tryError};
if fllog {
local (s = string (adrscript));
if s beginswith "[\"" {
ix = string.patternmatch ("\"].", s);
s = string.delete (s, 1, ix + 2)};
table.rename (@taskinfo.subTaskInfo, s)}
else {
delete (@taskinfo.subTaskInfo)}};
local (i, adrscript);
for i = 1 to sizeof (adrtable^) {
adrscript = @adrtable^ [i];
try {scratchpad.threaddebug.lasttaskadr = adrscript}; //5/25/08; 11:20:45 AM by DW
case typeof (adrscript^) {
scripttype {
callWithLogging (adrscript)};
addresstype {
local (nomad = adrscript);
while typeof (nomad^) != scripttype {
nomad = nomad^};
callWithLogging (nomad)};
stringType { //Convert a pre-6.0 task from string type to script type and run it
script.newScriptObject (string (adrscript^), adrscript);
script.compile (adrscript); //make sure it is valid UserTalk
callWithLogging (adrscript)}}}}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.