def recheck_limits(self):
limit_data = self.control_daemon.get_limits()<EOL>try:<EOL><INDENT>new_sum, new_limits = limit_data.get_limits(self.limit_sum)<EOL>lims = database.limits_hydrate(self.db, new_limits)<EOL>mapper = routes.Mapper(register=False)<EOL>for lim in lims:<EOL><INDENT>lim._route(mapper)<EOL><DEDENT>self.limits = lims<EOL>self.limit_sum = new_sum<EOL>self.mapper = mapper<EOL><DEDENT>except control.NoChangeException:<EOL><INDENT>return<EOL><DEDENT>except Exception:<EOL><INDENT>LOG.exception("<STR_LIT>")<EOL>control_args = self.conf['<STR_LIT>']<EOL>error_key = control_args.get('<STR_LIT>', '<STR_LIT>')<EOL>error_channel = control_args.get('<STR_LIT>', '<STR_LIT>')<EOL>msg = "<STR_LIT>" + traceback.format_exc()<EOL>with utils.ignore_except():<EOL><INDENT>self.db.sadd(error_key, msg)<EOL><DEDENT>with utils.ignore_except():<EOL><INDENT>self.db.publish(error_channel, msg)<EOL><DEDENT><DEDENT>
Re-check that the cached limits are the current limits.