Index: management.py
===================================================================
--- management.py	(revision 3426)
+++ management.py	(working copy)
@@ -1137,6 +1137,40 @@
     runfastcgi(args)
 runfcgi.args = '[various KEY=val options, use `runfcgi help` for help]'
 
+def runjobs(which=None):
+    "Runs scheduled maintenance operations defined by the installed applications"
+    from django.core import signals 
+    from django.db import models
+    from django.dispatch import dispatcher
+    from django.conf import settings
+    
+    if which is None or which == 'help':
+        print "run scheduled maintenance operations. Please specify 'hourly', 'daily', 'weekly' or 'monthly' "
+    else:
+        for app_name in settings.INSTALLED_APPS:
+            try:
+                __import__(app_name + '.management', '', '', [''])
+            except ImportError:
+                pass
+
+        for app in models.get_apps():
+
+            if which == 'hourly':
+                dispatcher.send(signal=signals.run_hourly_jobs, sender=app, app=app)
+            elif which == 'daily':
+                dispatcher.send(signal=signals.run_daily_jobs, sender=app, app=app)
+            elif which == 'weekly':
+                dispatcher.send(signal=signals.run_weekly_jobs, sender=app, app=app)
+            elif which == 'monthly':
+                dispatcher.send(signal=signals.run_monthly_jobs, sender=app, app=app)
+
+
+
+
+runjobs.args="[hourly daily weekly monthly]"
+runjobs.help_doc = "Runs scheduled maintenance operations defined by the installed applications"
+
+
 # Utilities for command-line script
 
 DEFAULT_ACTION_MAPPING = {
@@ -1149,6 +1183,7 @@
     'reset': reset,
     'runfcgi': runfcgi,
     'runserver': runserver,
+    'runjobs': runjobs,
     'shell': run_shell,
     'sql': get_sql_create,
     'sqlall': get_sql_all,
@@ -1271,6 +1306,9 @@
         action_mapping[action](addr, port, options.use_reloader)
     elif action == 'runfcgi':
         action_mapping[action](args[1:])
+
+    elif action == 'runjobs':
+        action_mapping[action](args[1])
     else:
         from django.db import models
         try:
Index: signals.py
===================================================================
--- signals.py	(revision 3426)
+++ signals.py	(working copy)
@@ -1,3 +1,7 @@
 request_started = object()
 request_finished = object()
 got_request_exception = object()
+run_hourly_jobs=object()
+run_daily_jobs=object()
+run_weekly_jobs=object()
+run_monthly_jobs=object()
