diff --git a/queue_job/job.py b/queue_job/job.py index 0f44969712..d2bec21da2 100644 --- a/queue_job/job.py +++ b/queue_job/job.py @@ -88,14 +88,19 @@ def identity_example(job_): Usually you will probably always want to include at least the name of the model and method. """ + hasher = identity_exact_hasher(job_) + return hasher.hexdigest() + + +def identity_exact_hasher(job_): + """Prepare hasher object for identity_exact.""" hasher = hashlib.sha1() hasher.update(job_.model_name.encode('utf-8')) hasher.update(job_.method_name.encode('utf-8')) hasher.update(str(sorted(job_.recordset.ids)).encode('utf-8')) hasher.update(str(job_.args).encode('utf-8')) hasher.update(str(sorted(job_.kwargs.items())).encode('utf-8')) - - return hasher.hexdigest() + return hasher @total_ordering