ns_sched(3aolserver) | AOLserver Built-In Commands | ns_sched(3aolserver) |
NAME¶
ns_after, ns_cancel, ns_pause, ns_resume, ns_schedule_daily, ns_schedule_proc, ns_schedule_weekly, ns_unschedule_proc - commandsSYNOPSIS¶
ns_after seconds {script | procname ?args?} ns_cancel id ns_pause id ns_resume id ns_schedule_daily ?-thread? ?-once? hour minute {script | procname ?args?} ns_schedule_proc ?-thread? ?-once? interval {script | procname ?args?} ns_schedule_weekly ?-thread? ?-once? day hour minute {script | procname ?args?} ns_unschedule_proc idDESCRIPTION¶
ns_afterrun the specified script or procedure after the specified
number of seconds
ns_after returns an id which can be used with the ns_pause, ns_cancel and
ns_resume apis.
ns_cancel
stops the scheduled running of the id returned by an
ns_after
returns 1 if unscheduled 0 if the script of procedure couldn't be
unscheduled
ns_pause
pauses the scheduled running of the id returned by an
ns_after
returns 1 if paused, 0 if the script of procedure couldn't be paused
ns_resume
resumes the scheduled running of the id returned by an
ns_after
returns 1 if resumed, 0 if the script of procedure couldn't be resumed
ns_schedule_daily
ns_schedule_daily runs the specified Tcl script or
procedure (procname) once a day at the time specified by hour and minute. The
hour can be from 0 to 23, and the minute can be from 0 to 59.
Specify -thread if you want a thread created to run the procedure. This will
allow the scheduler to continue with other scheduled procedures. Specifying
-thread is appropriate in situations where the script will not return
immediately, such as when the script performs network activity.
Specify -once if you want the script to run only one time. The default is that
the script will be re-scheduled after each time it is run.
ns_schedule_daily returns an id number for the scheduled procedure that is
needed to stop the scheduled procedure with ns_unschedule_proc.
ns_schedule_proc
ns_schedule_proc runs the specified Tcl script or
procedure (procname) at an interval specified by interval. The interval is the
number of seconds between runs of the script.
Specify -thread if you want a thread created to run the procedure. This will
allow the scheduler to continue with other scheduled procedures. Specifying
-thread is appropriate in situations where the script will not return
immediately, such as when the script performs network activity.
Specify -once if you want the script to run only one time. The default is that
the script will be re-scheduled after each time it is run.
ns_schedule_proc returns an id number for the scheduled procedure that is needed
to stop the scheduled procedure with ns_unschedule_proc.
ns_schedule_weekly
ns_schedule_weekly runs the specified Tcl script or
procedure (procname) once a week on the day specified by day and the time
specified by hour and minute. The day can be from 0 to 6, where 0 represents
Sunday. The hour can be from 0 to 23, and the minute can be from 0 to 59.
Specify -thread if you want a thread created to run the procedure. This will
allow the scheduler to continue with other scheduled procedures. Specifying
-thread is appropriate in situations where the script will not return
immediately, such as when the script performs network activity.
Specify -once if you want the script to run only one time. The default is that
the script will be re-scheduled after each time it is run.
ns_schedule_weekly returns an id number for the scheduled procedure that is
needed to stop the scheduled procedure with ns_unschedule_proc.
ns_unschedule_proc id
ns_unschedule_proc stops a scheduled procedure from
executing anymore. The scheduled procedure to be stopped is identified by its
id, which was returned by the ns_schedule* function that was used to schedule
the procedure.
EXAMPLES¶
ns_after ns_cancel ns_pause ns_resumeThis example illustrates a web interface used to manage
jobs. Depending on the action provided a job can be created, cancelled, paused
or resumed.
ns_schedule_daily
set action [ns_queryget action] set job [ns_queryget job] switch $action { create { set job [ns_after 10 [ns_queryget script]] ns_puts "Job created with id: $job" } cancel { if {[ns_cancel $job]} { ns_puts "Job $job cancelled" } else { ns_puts "Job $job not cancelled" } } pause { if {[ns_pause $job]} { ns_puts "Job $job paused" } else { ns_puts "Job $job not paused } } resume { if {[ns_resume $job]} { ns_puts "Job $job resumed" } else { ns_puts "Job $job couldn't be resumed" } } default { ns_puts "Invalid action $action" } }
This example defines a script called rolllog that uses
ns_accesslog to roll the access log to a file with an extension containing the
current date. The ns_schedule_daily function is used to execute the rolllog
script on a daily basis.
ns_schedule_proc
# Script to roll and rcp log file to host "grinder" proc rolllog {} { set suffix [ns_strftime "%y-%m-%d"] set new [ns_accesslog file].$suffix ns_accesslog roll $new exec rcp $new grinder:/logs/[file tail $new] } # Schedule "rolllog" to run at 3:30 am each morning ns_schedule_daily -thread 3 30 rolllog
proc dosomething blah { ns_log Notice "proc with arg '$blah'" } ns_schedule_proc 10 dosomething $arg1
SEE ALSO¶
KEYWORDS¶
schedule pause resume unschedule cancel after4.0 | AOLserver |