This provides a relatively easy way to debounce queued jobs.
A hash is created for a given job based on it's parameters. This hash value is then used as a cache key to store the most recently dispatched job id.
When running, if the value in the cache is equal to the current job id, then we continue running. If it's not, then we know it's an old job and exit.