2

我正在使用烧瓶为应用程序构建后端 api,我需要做的一件事是:

1. get the content the user submited 
2. send a twitter with that content
3. save the content to my DB and return the id of the new item

现在的问题是第 2 步花费的时间太长,因此会减慢总请求时间。

更具体地说,第 2 步是: twitter.send(content)

我怎样才能使第 2 步异步?PS:我不需要知道第2步是否成功

4

2 回答 2

4

我发现 Celery 和其他分布式任务框架对于像您或我这样异步发送电子邮件的简单任务来说太重了。

我最终使用了一个工作进程池来处理我的电子邮件。该方法在此对 Python中的异步方法调用的答案中进行了解释?问题。这个问题的公认答案提供了一个使用 Pool 但没有装饰器的解决方案,因此它更简单。

于 2012-04-27T04:22:51.937 回答
4

有一个烧瓶芹菜 pacakge.http://pypi.python.org/pypi/Flask-Celery。 http://ask.github.com/celery/getting-started/introduction

你可以告诉 celery 异步做什么。

  1. 获取用户提交的内容
  2. 向 celery 发送一条消息,它应该尽快发送一条推文
  3. 将内容保存到 db 并返回新项目的 id。

第 2 步可以用这种方式只要它需要,用户永远不会知道。

更新:
由于 Celery 3.0,不需要 烧瓶芹菜,您可以通过以下方式直接使用 celery:pip install -U Celery

于 2012-04-25T13:16:21.743 回答