* `job.get_status(refresh=True)` Possible values are `queued`, `started`,
* `job.get_status(refresh=True)` Possible values are `queued`, `started`,
`deferred`, `finished`, `stopped`, `scheduled` and `failed`. If `refresh` is
`deferred`, `finished`, `stopped`, `scheduled`, `canceled` and `failed`. If `refresh` is
`True` fresh values are fetched from Redis.
`True` fresh values are fetched from Redis.
* `job.get_meta(refresh=True)` Returns custom `job.meta` dict containing user
* `job.get_meta(refresh=True)` Returns custom `job.meta` dict containing user
stored data. If `refresh` is `True` fresh values are fetched from Redis.
stored data. If `refresh` is `True` fresh values are fetched from Redis.
@ -126,7 +126,7 @@ for job in jobs:
```
```
## Stopping a Currently Executing Job
## Stopping a Currently Executing Job
_New in version 1.7.0._
_New in version 1.7.0_
You can use `send_stop_job_command()` to tell a worker to immediately stop a currently executing job. A job that's stopped will be sent to [FailedJobRegistry](https://python-rq.org/docs/results/#dealing-with-exceptions).
You can use `send_stop_job_command()` to tell a worker to immediately stop a currently executing job. A job that's stopped will be sent to [FailedJobRegistry](https://python-rq.org/docs/results/#dealing-with-exceptions).
Unlike failed jobs, stopped jobs will *not* be automatically retried if retry is configured. Subclasses of `Worker` which override `handle_job_failure()` should likewise take care to handle jobs with a `stopped` status appropriately.
Unlike failed jobs, stopped jobs will *not* be automatically retried if retry is configured. Subclasses of `Worker` which override `handle_job_failure()` should likewise take care to handle jobs with a `stopped` status appropriately.
## Canceling a Job
_New in version 1.10.0_
To prevent a job from running, cancel a job, use `job.cancel()`.