1
我試圖緩存使用芹菜4.0.2任務之間的大型資源文件。芹菜任務instanciation緩存
在文檔中查看,我已經達到了任務緩存部分。
http://docs.celeryproject.org/en/latest/userguide/tasks.html#instantiation
這也可能是緩存的資源是有用的,例如,緩存數據庫連接的基本任務等級:
from celery import Task
class DatabaseTask(Task):
_db = None
@property
def db(self):
if self._db is None:
self._db = Database.connect()
return self._db
在我來說,我已經做了一些改動緩存我的大文件資源以及它在任務之間共享的對象,但大文件資源所使用的內存永久緩存在任務中。
from celery import Task
class BigResourceTask(Task):
_resource = None
@property
def resource(self):
if self._resource is None:
self._resource = load_big_resource()
return self._resource
如何在執行完所有相關任務後釋放內存或使其過期?
感謝您的重播。我已經嘗試過,但是這爲每個進程創建了新的資源。我正在嘗試爲具有相同基本任務的所有進程提供某種共享對象。 – PaytoN