|
@@ -1,6 +1,6 @@
|
|
|
from inspect import getargspec
|
|
|
|
|
|
-from celery.task.base import Task
|
|
|
+from celery.task.base import Task, PeriodicTask
|
|
|
|
|
|
|
|
|
def task(**options):
|
|
@@ -50,3 +50,24 @@ def task(**options):
|
|
|
return task
|
|
|
|
|
|
return _create_task_cls
|
|
|
+
|
|
|
+
|
|
|
+def periodic_task(**options):
|
|
|
+ """Task decorator to create a periodic task.
|
|
|
+
|
|
|
+ **Usage**
|
|
|
+
|
|
|
+ Run a task once every day:
|
|
|
+
|
|
|
+ .. code-block:: python
|
|
|
+
|
|
|
+ from datetime import timedelta
|
|
|
+
|
|
|
+ @periodic_task(run_every=timedelta(days=1))
|
|
|
+ def cronjob(**kwargs):
|
|
|
+ logger = cronjob.get_logger(**kwargs)
|
|
|
+ logger.warn("Task running...")
|
|
|
+
|
|
|
+ """
|
|
|
+ options["base"] = PeriodicTask
|
|
|
+ return task(**options)
|