|
@@ -1,25 +1,26 @@
|
|
|
from datetime import timedelta
|
|
|
|
|
|
+from celery import conf
|
|
|
+from celery.schedules import crontab
|
|
|
from celery.serialization import pickle
|
|
|
from celery.task.base import Task, PeriodicTask
|
|
|
from celery.task.sets import TaskSet
|
|
|
|
|
|
|
|
|
-class DeleteExpiredTaskMetaTask(PeriodicTask):
|
|
|
- """A periodic task that deletes expired task metadata every day.
|
|
|
+class backend_cleanup(Task):
|
|
|
+ name = "celery.backend_cleanup"
|
|
|
|
|
|
- This runs the current backend's
|
|
|
- :meth:`celery.backends.base.BaseBackend.cleanup` method.
|
|
|
+ def run(self):
|
|
|
+ self.backend.cleanup()
|
|
|
|
|
|
- """
|
|
|
- name = "celery.delete_expired_task_meta"
|
|
|
- run_every = timedelta(days=1)
|
|
|
+if conf.TASK_RESULT_EXPIRES and \
|
|
|
+ backend_cleanup.name not in conf.CELERYBEAT_SCHEDULE:
|
|
|
+ conf.CELERYBEAT_SCHEDULE[backend_cleanup.name] = dict(
|
|
|
+ task=backend_cleanup.name,
|
|
|
+ schedule=crontab(minute="00", hour="04", day_of_week="*"))
|
|
|
|
|
|
- def run(self, **kwargs):
|
|
|
- """:returns: None"""
|
|
|
- logger = self.get_logger(**kwargs)
|
|
|
- logger.info("Deleting expired task results...")
|
|
|
- self.backend.cleanup()
|
|
|
+
|
|
|
+DeleteExpiredTaskMetaTask = backend_cleanup # FIXME remove in 3.0
|
|
|
|
|
|
|
|
|
class PingTask(Task):
|