Run callback, optionally passing a variable number
        of arguments `callback_args`

def invoke(self):
        """
        Run callback, optionally passing a variable number
        of arguments `callback_args`
        """

        # Don't sleep a hook if it has never run
        if self.timeout_milliseconds > 0:
            self.ready_time = (
                datetime.now() +
                timedelta(milliseconds=self.timeout_milliseconds))

        self.callback(self.callback_args)