<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def job_skipped(self, job, queue):
 """ Called if a job, before trying to run it, has not the "waiting" status, or, after run, if its status was set to "canceled" """

        job.queued.delete()
        self.log(self.job_skipped_message(job, queue), level='warning')
        if hasattr(job, 'on_skipped'):
            job.on_skipped(queue)