5
""" run garbage collector """
7
__copyright__ = 'this file is in the public domain'
9
from gozerbot.periodical import periodical
10
from gozerbot.generic import rlog
11
from gozerbot.commands import cmnds
12
from gozerbot.examples import examples
13
from gozerbot.persiststate import PlugState
17
state.define('wait', 300)
18
state.define('enable', 0)
22
rlog(10, 'gcollect', 'garbage collector enabled .. wait is %s' % state['wait'])
28
rlog(1, 'gcollect', 'running collector')
36
pid = periodical.addjob(state['wait'], 0, gcollect)
40
def handle_gcollectwait(bot, ievent):
42
newwait = int(ievent.args[0])
43
except (IndexError, ValueError):
44
ievent.reply('gcollect wait is %s seconds' % state['wait'])
47
ievent.reply('min. number of seconds is 60')
49
state['wait'] = newwait
52
periodical.changeinterval(pid, newwait)
53
ievent.reply('gcollect wait set to %s' % state['wait'])
55
cmnds.add('gcollect-wait', handle_gcollectwait, 'OPER')
56
examples.add('gcollect-wait', 'set wait of garbage collector', \
59
def handle_gcollect(bot, ievent):
61
ievent.reply('collector runned')
63
cmnds.add('gcollect', handle_gcollect, 'OPER')
64
examples.add('gcollect', 'run garbage collector', 'gcollect')
66
def handle_gcollectenable(bot, ievent):
70
pid = periodical.addjob(state['wait'], 0, gcollect)
71
ievent.reply('gcollect enabled')
73
cmnds.add('gcollect-enable', handle_gcollectenable, 'OPER')
74
examples.add('gcollect-enable', 'enable the garbage collector', 'gcollect-enable')
76
def handle_gcollectdisable(bot, ievent):
80
ievent.reply('gcollect disabled')
82
cmnds.add('gcollect-disable', handle_gcollectdisable, 'OPER')
83
examples.add('gcollect-disable', 'disable the garbage collector', 'gcollect-disable')