SQLAlchemy:在发送响应后写入数据库

时间:2010-09-02 22:41:04

标签: python optimization memcached data-storage

我有一项简单的服务,大致可以做到以下几点:

  1. HTTP客户端连接到服务器
  2. 服务器将客户端的sessionID和时间戳写入数据库,在大多数情况下只返回空响应
  3. (它确实做了实际工作并返回实际数据的情况与此问题无关)

    为了尽快返回此响应,我想在请求处理程序的正文中将信息写入memcache(因为memcache很快),并生成一个单独的线程,其中另一个使用SQLAlchemy的函数会编写它到持久存储。这样,我就可以在写入memcache并生成一个线程后立即返回,并且请求处理程序不必等到SQLAlchemy将信息保存到数据库。

    这有意义吗?如果是,我该如何实施呢?

1 个答案:

答案 0 :(得分:2)

您可以使用类似Celery distributed task queue的内容将处理卸载到其他计算机上。它确实需要设置一个单独的基础架构,但允许从Web请求中切换任务以便在后台处理,而对请求的HTTP repsonse可以立即返回。