I need to run four tasks but they need to run one after the other only if they are successful.

我需要运行4个任务,但是只有当它们成功时,它们才需要一个接一个地运行。

I have tried to chain them like this..but they start off independently

我试图把它们像这样捆起来。但一开始是独立的

res = (mul.si(5,5) | mul.si(5,6) | mul.si(5,7) | mul.si(5,8) | mul.si(5,9) )()

any idea?

任何想法?

1 个解决方案

#1


1

Yes you can do it. But you need to store the result as mentioned here.

是的,你能做到。但是您需要存储这里提到的结果。

But this is rarely used since it turns the asynchronous call into a synchronous one

但这很少使用,因为它将异步调用转换为同步调用

In my example,

在我的例子中,

tasks.py is like

任务。py就像

from celery import Celery
import datetime

app = Celery('tasks',backend='amqp' broker='amqp://guest@localhost//')

@app.task
def add(x, y):
    return x + y


def add_chained(args_list=list()):
    for args in args_list:
        print "Performing addtion for %s at %s" % (args, datetime.datetime.now())
        result = add.delay(*args)
        while not result.ready():
            pass

Result is Like this:

结果是这样的:

>>> import tasks
>>> tasks.add_chained([(1,2), (2,3), (3,4), (4,5)])
Performing addtion for (1, 2) at 2014-01-17 18:49:57.392357
Performing addtion for (2, 3) at 2014-01-17 18:49:57.428961
Performing addtion for (3, 4) at 2014-01-17 18:49:57.432598
Performing addtion for (4, 5) at 2014-01-17 18:49:57.435891

更多相关文章

  1. Python学习/复习神器-->各种方法/技巧在哪用和典型例子(一)
  2. Python 浅拷贝和深拷贝使用例子
  3. python打印列表的下标和值的例子:
  4. python2.7练习小例子(十二)
  5. 创建链表的小例子
  6. LNMP(Linux+Nginx+Mysql+PHP)环境下安装yaf框架并编写一个MVC例子
  7. 简单统计报表例子(存储过程)
  8. unity连接数据库MySQL简单例子
  9. webgote的例子(6)SQL注入(盲注)

随机推荐

  1. Android 面试必备 - 线程
  2. Android中实现全屏、无标题栏的两种办法(
  3. Android 远程调试 JNI 实现 ( Android JNI
  4. 【Android(安卓)Developers Training】 5
  5. [Android] Android中将一个图片切割成多
  6. 再次研究Android MediaPlayer
  7. 布局指令大全
  8. Android(安卓)学习 之 Looper Handler Th
  9. android基本功
  10. Android中的Parcel机制 实现Bundle传递对