From ed019634d2cbecd8a4d581889c0c1782f15ce100 Mon Sep 17 00:00:00 2001 From: Ilan Date: Sat, 1 Aug 2015 11:41:45 +0200 Subject: [PATCH] Sets pickle protocol to highest * package signing protocol is now set to highest. Tests show this to be about a 35% speed increase and there is increased probability of correctly pickling complex objects. * also upped the protocol on the result database picklefield. --- django_q/models.py | 6 +++--- django_q/signing.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/django_q/models.py b/django_q/models.py index 43fbff3..c7e398c 100644 --- a/django_q/models.py +++ b/django_q/models.py @@ -16,9 +16,9 @@ class Task(models.Model): name = models.CharField(max_length=100, editable=False) func = models.CharField(max_length=256) hook = models.CharField(max_length=256, null=True) - args = PickledObjectField(null=True) - kwargs = PickledObjectField(null=True) - result = PickledObjectField(null=True) + args = PickledObjectField(null=True, protocol=-1) + kwargs = PickledObjectField(null=True, protocol=-1) + result = PickledObjectField(null=True, protocol=-1) group = models.CharField(max_length=100, editable=False, null=True) started = models.DateTimeField(editable=False) stopped = models.DateTimeField(editable=False) diff --git a/django_q/signing.py b/django_q/signing.py index 11afc12..4ee8bf3 100644 --- a/django_q/signing.py +++ b/django_q/signing.py @@ -37,7 +37,7 @@ class PickleSerializer(object): @staticmethod def dumps(obj): - return pickle.dumps(obj) + return pickle.dumps(obj, protocol=pickle.HIGHEST_PROTOCOL) @staticmethod def loads(data):