在芹菜任务之间共享对象

时间:2015-08-04 08:58:27

标签: python celery fileparsing

我有一个处理大约500 000个文件{Ai}的程序,对于每个文件,它将获取解析的定义{Di}。

现在,每个文件{Ai}都由专用的芹菜任务解析,并且每次再次解析定义文件{Di}以生成对象。该对象用于解析文件{Ai}(JSON表示)。

我想存储定义文件(生成的对象){Di(object)}以使其可用于整个任务。

所以我想知道管理它的最佳选择是什么:

  1. Memcahe + Python-memcached,
  2. 一个长期运行的任务,用set(add)/ get interface“存储”对象。
  3. 对于性能和内存使用情况,最佳选择是什么?

1 个答案:

答案 0 :(得分:1)

使用Memcached听起来更容易解决 - 任务是处理,memcached是存储 - 为什么要使用任务进行存储?

我个人建议在memcached上使用Redis。

另一种方法是尝试ZODB - 它本地存储Python对象。如果您的应用程序真的受到序列化开销的影响,这可能会有所帮助。但我强烈建议您使用针对JSON / memcached的实际工作负载进行测试。