]> git.ozlabs.org Git - patchwork/commitdiff
cron: Move patchwork-cron script to a management command
authorJeremy Kerr <jk@ozlabs.org>
Thu, 28 May 2015 05:39:05 +0000 (13:39 +0800)
committerJeremy Kerr <jk@ozlabs.org>
Thu, 28 May 2015 05:42:11 +0000 (13:42 +0800)
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
docs/INSTALL
docs/NEWS
patchwork/bin/patchwork-cron.py [deleted file]
patchwork/management/commands/cron.py [new file with mode: 0755]

index 9630ad71d1858bc3352089dd7bd8b777c23d7612..611fbb4258404acc58c3a5e380ce39cfd02cb230 100644 (file)
@@ -255,9 +255,7 @@ in brackets):
     Something like this in your crontab should work:
 
       # m h  dom mon dow   command
-      PYTHONPATH=.
-      DJANGO_SETTINGS_MODULE=patchwork.settings.production
-      */10 * * * * cd patchwork; python patchwork/bin/patchwork-cron.py
+      */10 * * * * cd patchwork; ./manage.py cron
 
 
     - the frequency should be the same as the NOTIFICATION_DELAY_MINUTES
index 792fc6196fb77f40abf1c6ccc7517642aabcb472..d1342b1aad6ea36b9311305937a9ce81bd257f9f 100644 (file)
--- a/docs/NEWS
+++ b/docs/NEWS
@@ -1,3 +1,10 @@
+== Cron script changes ==
+
+The patchwork cron script has been moved to a manage.py command. Instead
+of running patchwork-cron.py, run:
+
+  ./manage.py cron
+
 == Upgrading to 3b8a61c ==
 
 Recent commits have changed a few admin-visible components of patchwork, so
diff --git a/patchwork/bin/patchwork-cron.py b/patchwork/bin/patchwork-cron.py
deleted file mode 100755 (executable)
index 148e97c..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python
-
-import sys
-from patchwork.utils import send_notifications, do_expiry
-
-def main(args):
-    errors = send_notifications()
-    for (recipient, error) in errors:
-        print "Failed sending to %s: %s" % (recipient.email, ex)
-
-    do_expiry()
-
-if __name__ == '__main__':
-    sys.exit(main(sys.argv))
-
diff --git a/patchwork/management/commands/cron.py b/patchwork/management/commands/cron.py
new file mode 100755 (executable)
index 0000000..6217e75
--- /dev/null
@@ -0,0 +1,20 @@
+#!/usr/bin/env python
+
+from django.core.management.base import BaseCommand, CommandError
+from patchwork.utils import send_notifications, do_expiry
+
+class Command(BaseCommand):
+    help = ('Run periodic patchwork functions: send notifications and ' 
+            'expire unused users')
+
+    def handle(self, *args, **kwargs):
+        errors = send_notifications()
+        for (recipient, error) in errors:
+            self.stderr.write("Failed sending to %s: %s" %
+                                (recipient.email, ex))
+
+        do_expiry()
+
+if __name__ == '__main__':
+    sys.exit(main(sys.argv))
+