def rate_limit_tasks(self, request, queryset): tasks = set([task.name for task in queryset]) opts = self.model._meta app_label = opts.app_label if request.POST.get("post"): rate = request.POST["rate_limit"] connection = default_app.broker_connection() try: for task_name in tasks: rate_limit(task_name, rate, connection=connection) finally: connection.close() return None context = { "title": _("Rate limit selection"), "queryset": queryset, "object_name": force_unicode(opts.verbose_name), "action_checkbox_name": helpers.ACTION_CHECKBOX_NAME, "opts": opts, "root_path": self.admin_site.root_path, "app_label": app_label, } return render_to_response(self.rate_limit_confirmation_template, context, context_instance=RequestContext(request))
def terminate_tasks(self, request, queryset): connection = default_app.broker_connection() try: for state in queryset: revoke(state.task_id, connection=connection, terminate=True) finally: connection.close()
def revoke_task(task_id,terminate=False,signal=None): connection = default_app.broker_connection() return control.revoke(task_id, connection=connection, terminate=terminate, signal=signal)