Added @ps to show events and the next time they're going to fire.

This commit is contained in:
Greg Taylor 2007-05-23 19:19:20 +00:00
parent 53b111f4ae
commit 3ecb46f958
3 changed files with 52 additions and 3 deletions

View file

@ -60,6 +60,7 @@ ctable = {
"@newpassword": (commands_privileged.cmd_newpassword, ("genperms.manage_players")),
"@open": (commands_privileged.cmd_open, ("genperms.builder")),
"@password": (commands_privileged.cmd_password, None),
"@ps": (commands_privileged.cmd_ps, ("genperms.process_control")),
"@reload": (commands_privileged.cmd_reload, ("genperms.process_control")),
"@set": (commands_privileged.cmd_set, None),
"@shutdown": (commands_privileged.cmd_shutdown, ("genperms.process_control")),

View file

@ -4,6 +4,7 @@ import resource
from django.contrib.auth.models import User
from apps.objects.models import Object
import defines_global
import scheduler
import session_mgr
import functions_general
import functions_db
@ -22,6 +23,19 @@ def cmd_reload(cdat):
session = cdat['session']
server = session.server.reload(session)
def cmd_ps(cdat):
"""
Shows the process/event table.
"""
session = cdat['session']
session.msg("-- Interval Events --")
for event in scheduler.schedule:
session.msg(" [%d/%d] %s" % (scheduler.get_event_nextfire(event),
scheduler.get_event_interval(event),
scheduler.get_event_description(event)))
session.msg("Totals: %d interval events" % (len(scheduler.schedule),))
def cmd_destroy(cdat):
"""
Destroy an object.

View file

@ -1,5 +1,6 @@
import events
import time
from twisted.internet import task
import events
"""
ADDING AN EVENT:
* Create an event function to call.
@ -10,7 +11,7 @@ ADDING AN EVENT:
# Dictionary of events with a list in the form of:
# [<function>, <interval>, <lastrantime>, <taskobject>, <description>]
schedule = {
'check_sessions': [events.check_sessions, 5, None, None, "Session check."]
'check_sessions': [events.check_sessions, 60, time.time(), None, "Session consistency checks."]
}
def start_events():
@ -54,6 +55,30 @@ def get_event_interval(event_name):
"""
return get_event(event_name)[1]
def get_event_nextfire(event_name):
"""
Returns a value in seconds when the event is going to fire off next.
event_name: (string) The key of the event in the schedule dictionary.
"""
return (get_event(event_name)[2]+get_event_interval(event_name))-time.time()
def get_event_taskobj(event_name):
"""
Returns an event's task object.
event_name: (string) The key of the event in the schedule dictionary.
"""
return get_event(event_name)[3]
def get_event_description(event_name):
"""
Returns an event's description.
event_name: (string) The key of the event in the schedule dictionary.
"""
return get_event(event_name)[4]
def set_event_taskobj(event_name, taskobj):
"""
Sets an event's task object.
@ -62,6 +87,14 @@ def set_event_taskobj(event_name, taskobj):
"""
get_event(event_name)[3] = taskobj
def set_event_lastfired(event_name):
"""
Sets an event's last fired time.
event_name: (string) The key of the event in the schedule dictionary.
"""
get_event(event_name)[2] = time.time()
def trigger_event(event_func, event_name):
"""
Update the last ran time and fire off the event.
@ -69,4 +102,5 @@ def trigger_event(event_func, event_name):
event_func: (func_reference) Reference to the event function to fire.
eventname: (string) The name of the event (as per schedule dict).
"""
event_func()
event_func()
set_event_lastfired(event_name)