def METHOD_NAME(self, action, args, kwargs):
    if action not in ("stop", "pause", "unpause", "kill"):
        raise exceptions.InvalidControlException(f"action: {action} is not supported")
    worker = yield self.get(None, kwargs)
    if worker is not None:
        self.master.mq.produce(
        ("control", "worker", str(worker["workerid"]), action),
        {"reason": kwargs.get("reason", args.get("reason", "no reason"))},
    )
    else:
        raise exceptions.exceptions.InvalidPathError("worker not found")