【问题标题】:Currency within celery task芹菜任务中的货币
【发布时间】:2016-02-03 23:11:00
【问题描述】:

我对 python 和 celery 很陌生。 我的工作是非常繁重的 IO 限制,需要做 http 请求、查询 redshift、mysql 和写入 mysql。 我们正在考虑使用 celery 来连续运行作业,但我认为是否可以在我的 celery 任务中实现并发。基本上就像每个任务可以批量处理一组数据,异步调用。 我试图使用 tornado gen.coroutine,但是没有明确的理由用芹菜失败了。 gevent或eventlet会好吗?谁能给点建议? 我真的很感激,谢谢!

【问题讨论】:

    标签: python-2.7 concurrency celery celery-task


    【解决方案1】:

    听起来您想创建多个较小的 celery 任务并使用Chord 将它们绑定在一起。

    编辑:由于有人似乎认为链接到官方文档不够好(我能想到的唯一理由)我将在此处粘贴文档中的代码:

    @app.task
    def add(x, y):
        return x + y
    
    @app.task
    def tsum(numbers):
        return sum(numbers)
    
    
    >>> from celery import chord
    >>> from tasks import add, tsum
    
    >>> chord(add.s(i, i)
    ...       for i in xrange(100))(tsum.s()).get()
    9900
    
    
    >>> callback = tsum.s()
    >>> header = [add.s(i, i) for i in range(100)]
    >>> result = chord(header)(callback)
    >>> result.get()
    9900
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      • 2016-03-19
      • 2023-03-17
      • 1970-01-01
      • 2012-12-01
      • 2014-04-16
      • 2018-07-04
      相关资源
      最近更新 更多