擅长:python、mysql、java
<p><code>celery.schedules.schedule</code>有一个<code>__reduce__</code>方法,用于定义如何使用pickle序列化和重构对象:</p>
<p><a href="https://github.com/celery/celery/blob/master/celery/schedules.py#L150-L151" rel="nofollow">https://github.com/celery/celery/blob/master/celery/schedules.py#L150-L151</a></p>
<p>pickle序列化将调用的对象时:</p>
<pre><code>fun, args = obj.__reduce__()
</code></pre>
<p>当它重建物体时,它会做:</p>
<pre><code>obj = fun(*args)
</code></pre>
<p>因此,如果您已将新状态添加到自定义计划子类中,并作为参数传递给<code>__init__</code>,那么您将
还必须定义一个<code>__reduce__</code>方法来接受这些
要考虑的新参数:</p>
<pre><code>class myschedule(schedule):
def __init__(self, run_every=None, relative=False, nowfun=None,
odds=None, max_run_every=None, **kwargs):
super(myschedule, self).__init__(
run_every, relative, nowfun, **kwargs)
self.odds = odds
self.max_run_every = max_run_every
def __reduce__(self):
return self.__class__, (
self.run_every, self.relative, self.nowfun,
self.odds, self.max_run_every)
</code></pre>