diff --git a/queue_job/job.py b/queue_job/job.py index 0987d0348..9843c01f0 100644 --- a/queue_job/job.py +++ b/queue_job/job.py @@ -89,14 +89,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