<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def consume(self, routingKey, msg):
 """ Consumer for CaptureBuildStartTime. Gets the build start time. """

        builder_info = yield self.master.data.get(("builders", msg['builderid']))
        if self._builder_name_matches(builder_info):
            try:
                ret_val = self._callback(*self._retValParams(msg))
            except Exception as e:
                # catching generic exceptions is okay here since we propagate
                # it
                raise CaptureCallbackError("%s Exception raised: %s with message: %s" %
                                           (self._err_msg(msg, builder_info['name']),
                                            type(e).__name__, str(e)))

            context = self._defaultContext(msg, builder_info['name'])
            post_data = {
                self._time_type: ret_val
            }
            series_name = "%s-build-times" % builder_info['name']
            yield self._store(post_data, series_name, context)

        else:
            yield defer.succeed(None)