Added more stable events.

- added PIDs to all events, so they can be deleted safely.
- scheduler.del_event(pid) cleanly deletes events from the scheduler
- added @delevent for deleting events based on PID (@ps shows this now)
- Events has a self.repeat property allowing them to only be repeated a certain time (default is infinitely many times). After the set number of repeats, the event deletes itself from the scheduler.

Events are currently not persistently stored; this is left for future commits.
.
Griatch
This commit is contained in:
Griatch 2009-11-18 20:10:35 +00:00
parent 642932a403
commit 5e866c6b73
5 changed files with 148 additions and 26 deletions

View file

@ -135,13 +135,18 @@ def cmd_ps(command):
"""
source_object = command.source_object
source_object.emit_to("-- Interval Events --")
for event in scheduler.schedule:
source_object.emit_to(" [%d/%d] %s" % (
event.get_nextfire(),
event.interval,
event.description))
source_object.emit_to("Totals: %d interval events" % (len(scheduler.schedule),))
source_object.emit_to("Processes Scheduled:\n-- PID [time/interval] [repeats] description --")
for event in scheduler.SCHEDULE:
repeats = "[inf] "
if event.repeats != None:
repeats = "[%i] " % event.repeats
source_object.emit_to(" %i [%d/%d] %s%s" % (
event.pid,
event.get_nextfire(),
event.interval,
repeats,
event.description))
source_object.emit_to("Totals: %d interval events" % (len(scheduler.SCHEDULE),))
GLOBAL_CMD_TABLE.add_command("@ps", cmd_ps,
priv_tuple=("genperms.process_control",), help_category="Admin")