擅长:python、mysql、java
<p>创建一个芹菜任务来执行您需要对对象执行的任何操作:</p>
<p><strong>任务.py</strong></p>
<pre><code>from celery.decorators import task
@task()
def foo(object):
object.do_some_calculation()
</code></pre>
<p>然后创建一个<a href="https://docs.djangoproject.com/en/dev/topics/signals/" rel="nofollow">django signal</a>,每次保存模型的实例时都会激发该实例,将任务放入芹菜中排队:</p>
<p><strong>模型.py</strong></p>
^{pr2}$
<p>需要注意的是,django的信号是同步的,换句话说,<code>queue_task</code>函数在请求周期内运行,但是<code>queue_task</code>函数所做的就是告诉Celery在B后台处理实际的工作内容(<code>do_some_calculation</code>)</p>