def handle(self, *args, **options): from django.conf import settings from bambu import cron from os import path, remove import logging, time flag = getattr(settings, 'CRON_FLAG_FILE', None) logger = logging.getLogger('bambu.cron') if flag and path.exists(flag): logger.info('A prior cron job is still running.') return cron.autodiscover() if options['setup']: cron.site.setup() if flag: logger.debug('Setting flag file "%s"' % flag) open(flag, 'w').write( str(time.time()) ) try: cron.site.run(options['force'], options['debug']) finally: if flag and path.exists(flag): logger.debug('Removing flag file "%s"' % flag) remove(flag)
from bambu import cron cron.autodiscover() class CronMiddleware(object): def process_request(self, *args, **kwargs): cron.site.run()
from bambu import cron cron.autodiscover() class EnqueueMiddleware(object): def process_template_response(self, request, response): if not hasattr(response, 'context_data'): return response queues = getattr(request, 'queues', {}) css = list(response.context_data.get('enqueued_styles') or []) css.extend(queues.get('css') or []) response.context_data['enqueued_styles'] = css scripts = list(response.context_data.get('enqueued_scripts') or []) scripts.extend(queues.get('js') or []) response.context_data['enqueued_scripts'] = scripts return response