|
@@ -25,6 +25,8 @@
|
|
|
from __future__ import with_statement
|
|
|
from __future__ import absolute_import
|
|
|
|
|
|
+import os
|
|
|
+
|
|
|
from functools import partial
|
|
|
|
|
|
from ..platforms import detached
|
|
@@ -34,13 +36,15 @@ from .base import Command, Option, daemon_options
|
|
|
|
|
|
class BeatCommand(Command):
|
|
|
supports_args = False
|
|
|
+ preload_options = (Command.preload_options
|
|
|
+ + daemon_options(default_pidfile="celerybeat.pid"))
|
|
|
|
|
|
def run(self, detach=False, logfile=None, pidfile=None, uid=None,
|
|
|
gid=None, umask=None, working_directory=None, **kwargs):
|
|
|
+ workdir = working_directory
|
|
|
kwargs.pop("app", None)
|
|
|
beat = partial(self.app.Beat,
|
|
|
logfile=logfile, pidfile=pidfile, **kwargs)
|
|
|
- workdir = working_directory
|
|
|
|
|
|
if detach:
|
|
|
with detached(logfile, pidfile, uid, gid, umask, workdir):
|
|
@@ -48,6 +52,11 @@ class BeatCommand(Command):
|
|
|
else:
|
|
|
return beat().run()
|
|
|
|
|
|
+ def prepare_preload_options(self, options):
|
|
|
+ workdir = options.get("working_directory")
|
|
|
+ if workdir:
|
|
|
+ os.chdir(workdir)
|
|
|
+
|
|
|
def get_options(self):
|
|
|
conf = self.app.conf
|
|
|
|
|
@@ -72,9 +81,7 @@ class BeatCommand(Command):
|
|
|
Option('-l', '--loglevel',
|
|
|
default=conf.CELERYBEAT_LOG_LEVEL,
|
|
|
action="store", dest="loglevel",
|
|
|
- help="Loglevel. One of DEBUG/INFO/WARNING/ERROR/CRITICAL."),
|
|
|
- ) + daemon_options(default_pidfile="celerybeat.pid",
|
|
|
- default_logfile=conf.CELERYBEAT_LOG_FILE)
|
|
|
+ help="Loglevel. One of DEBUG/INFO/WARNING/ERROR/CRITICAL."))
|
|
|
|
|
|
|
|
|
def main():
|