# HG changeset patch # User Peter Sanchez # Date 1308966108 25200 # Fri Jun 24 18:41:48 2011 -0700 # Node ID 7c13904539e9e2a8c906fb382e443b3736da0e96 # Parent 783b8c5169b0364ad2571af9bb8bb9dea89815ee Added --fail-silently option to run_callbacks command diff --git a/callback/management/commands/run_callbacks.py b/callback/management/commands/run_callbacks.py --- a/callback/management/commands/run_callbacks.py +++ b/callback/management/commands/run_callbacks.py @@ -1,12 +1,28 @@ +from optparse import OptionParser, make_option from django.conf import settings from django.core.management.base import BaseCommand -from callback import callback_manager +from callback import CallbackException, callback_manager from callback.models import CallbackMap class Command(BaseCommand): help = 'Process all pending callbacks' + option_list = BaseCommand.option_list + ( + make_option( + '--fail-silently', + dest='fail_silently', + action='store_true', + help='If callback fails, do not raise the exception', + ), + ) + def handle(self, *args, **kwargs): + fail_silently = kwargs.get('fail_silently', False) for callback in CallbackMap.objects.all_live_callbacks(): - callback_manager.process_callback(callback) + try: + callback_manager.process_callback(callback) + except CallbackException: + if not fail_silently: + raise + pass