2
我有一個隊列端點(Celery)在處理它們之前消耗一批消息,然後將它們全部寫入臨時文件以供另一個進程(Spark集羣)使用。它基本上是一個巨大的字典列表,以JSON編碼。巨大的JSON列表沒有吃掉所有的內存
[{'id':1,'content'=...},{'id':2,'content'=...},{'id':3,'content'=...}.....]
但我們保留在內存中的所有郵件,然後json.dumps
也產生在大內存字符串。那麼我可以做得比將所有內容存儲在內存中更好嗎?我可以在文件到達時將消息轉儲到文件中,因此它不會消耗太多的內存嗎?
你必須看看處理這些消息的代碼,並可能立即寫入文件。我不知道這些文件有多大,但是如果它們足夠大,可以考慮滑動窗口mmap:https://pypi.python.org/pypi/smmap。 – dilbert