def patch(self, job_id):
        """
        Method to stop/remove a job from the active queue to complete
        and cancel current hashcat job if it's already running

        Arguments
        ---------
        job_id: str
            hex reprisentation of uuid job ID

        Returns
        ------
        HTTP 204

        """
        try:
            marsh_schema = parse_json_schema().load({'job_id': job_id})
            job_id = marsh_schema['job_id'].hex
        except ValidationError as errors:
            logger.debug('Validation error: {}'.format(errors))
            return errors.messages, 500
        try:
            logger.debug('Stopping job: {:s}'.format(job_id))
            job = self.q.fetch_job(job_id)
            started = rq.registry.StartedJobRegistry(queue=self.q)
            cur_list = started.get_job_ids()
            comp = rq.registry.FinishedJobRegistry(queue=self.q)
            if job_id in cur_list:
                job.meta['CrackQ State'] = 'Stop'
                job.save_meta()
                return 'Stopping Job: Sending signal to Hashcat', 204
            else:
                job.set_status('finished')
                job.save()
                comp.add(job, -1)
                job.cleanup(-1)
                Queue.dequeue_any(self.q, None, connection=self.redis_con,
                                  serializer=JSONSerializer)
                return 'Stopped Job', 200
        except AttributeError as err:
            logger.debug('Failed to stop job: {}'.format(err))
            return jsonify(ERR_INVAL_JID), 404

        Method to stop/remove a job from the active queue to complete
        and cancel current hashcat job if it's already running

        Arguments
        ---------
        job_id: str
            hex reprisentation of uuid job ID

        Returns
        ------
        HTTP 204

        
crackq/cq_api.py