Added @ps to show events and the next time they're going to fire.
This commit is contained in:
parent
53b111f4ae
commit
3ecb46f958
3 changed files with 52 additions and 3 deletions
|
|
@ -60,6 +60,7 @@ ctable = {
|
||||||
"@newpassword": (commands_privileged.cmd_newpassword, ("genperms.manage_players")),
|
"@newpassword": (commands_privileged.cmd_newpassword, ("genperms.manage_players")),
|
||||||
"@open": (commands_privileged.cmd_open, ("genperms.builder")),
|
"@open": (commands_privileged.cmd_open, ("genperms.builder")),
|
||||||
"@password": (commands_privileged.cmd_password, None),
|
"@password": (commands_privileged.cmd_password, None),
|
||||||
|
"@ps": (commands_privileged.cmd_ps, ("genperms.process_control")),
|
||||||
"@reload": (commands_privileged.cmd_reload, ("genperms.process_control")),
|
"@reload": (commands_privileged.cmd_reload, ("genperms.process_control")),
|
||||||
"@set": (commands_privileged.cmd_set, None),
|
"@set": (commands_privileged.cmd_set, None),
|
||||||
"@shutdown": (commands_privileged.cmd_shutdown, ("genperms.process_control")),
|
"@shutdown": (commands_privileged.cmd_shutdown, ("genperms.process_control")),
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ import resource
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from apps.objects.models import Object
|
from apps.objects.models import Object
|
||||||
import defines_global
|
import defines_global
|
||||||
|
import scheduler
|
||||||
import session_mgr
|
import session_mgr
|
||||||
import functions_general
|
import functions_general
|
||||||
import functions_db
|
import functions_db
|
||||||
|
|
@ -22,6 +23,19 @@ def cmd_reload(cdat):
|
||||||
session = cdat['session']
|
session = cdat['session']
|
||||||
server = session.server.reload(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):
|
def cmd_destroy(cdat):
|
||||||
"""
|
"""
|
||||||
Destroy an object.
|
Destroy an object.
|
||||||
|
|
|
||||||
40
scheduler.py
40
scheduler.py
|
|
@ -1,5 +1,6 @@
|
||||||
import events
|
import time
|
||||||
from twisted.internet import task
|
from twisted.internet import task
|
||||||
|
import events
|
||||||
"""
|
"""
|
||||||
ADDING AN EVENT:
|
ADDING AN EVENT:
|
||||||
* Create an event function to call.
|
* Create an event function to call.
|
||||||
|
|
@ -10,7 +11,7 @@ ADDING AN EVENT:
|
||||||
# Dictionary of events with a list in the form of:
|
# Dictionary of events with a list in the form of:
|
||||||
# [<function>, <interval>, <lastrantime>, <taskobject>, <description>]
|
# [<function>, <interval>, <lastrantime>, <taskobject>, <description>]
|
||||||
schedule = {
|
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():
|
def start_events():
|
||||||
|
|
@ -54,6 +55,30 @@ def get_event_interval(event_name):
|
||||||
"""
|
"""
|
||||||
return get_event(event_name)[1]
|
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):
|
def set_event_taskobj(event_name, taskobj):
|
||||||
"""
|
"""
|
||||||
Sets an event's task object.
|
Sets an event's task object.
|
||||||
|
|
@ -62,6 +87,14 @@ def set_event_taskobj(event_name, taskobj):
|
||||||
"""
|
"""
|
||||||
get_event(event_name)[3] = 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):
|
def trigger_event(event_func, event_name):
|
||||||
"""
|
"""
|
||||||
Update the last ran time and fire off the event.
|
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.
|
event_func: (func_reference) Reference to the event function to fire.
|
||||||
eventname: (string) The name of the event (as per schedule dict).
|
eventname: (string) The name of the event (as per schedule dict).
|
||||||
"""
|
"""
|
||||||
event_func()
|
event_func()
|
||||||
|
set_event_lastfired(event_name)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue