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.persist.persiststate import PlugState
14
from gozerbot.plughelp import plughelp
15
from gozerbot.tests import tests
19
plughelp.add('gcollect', 'help the garbage collector')
22
state.define('wait', 300)
23
state.define('enable', 0)
27
rlog(10, 'gcollect', 'garbage collector enabled .. wait is %s' % state['wait'])
33
rlog(1, 'gcollect', 'running collector')
41
pid = periodical.addjob(state['wait'], 0, gcollect)
45
def handle_gcollectwait(bot, ievent):
47
newwait = int(ievent.args[0])
48
except (IndexError, ValueError):
49
ievent.reply('gcollect wait is %s seconds' % state['wait'])
52
ievent.reply('min. number of seconds is 60')
54
state['wait'] = newwait
57
periodical.changeinterval(pid, newwait)
58
ievent.reply('gcollect wait set to %s' % state['wait'])
60
cmnds.add('gcollect-wait', handle_gcollectwait, 'OPER')
61
examples.add('gcollect-wait', 'set wait of garbage collector', \
63
tests.add('gcollect-wait 300')
65
def handle_gcollect(bot, ievent):
67
ievent.reply('collector runned')
69
cmnds.add('gcollect', handle_gcollect, 'OPER', threaded=True)
70
examples.add('gcollect', 'run garbage collector', 'gcollect')
73
def handle_gcollectenable(bot, ievent):
77
pid = periodical.addjob(state['wait'], 0, gcollect)
78
ievent.reply('gcollect enabled')
80
cmnds.add('gcollect-enable', handle_gcollectenable, 'OPER')
81
examples.add('gcollect-enable', 'enable the garbage collector', 'gcollect-enable')
82
tests.add('gcollect-enable')
84
def handle_gcollectdisable(bot, ievent):
88
ievent.reply('gcollect disabled')
90
cmnds.add('gcollect-disable', handle_gcollectdisable, 'OPER')
91
examples.add('gcollect-disable', 'disable the garbage collector', 'gcollect-disable')
92
tests.add('gcollect-disable')