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 = establish_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 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'] with current_app.default_connection() as connection: for task_name in tasks: rate_limit(task_name, rate, connection=connection) return None context = { 'title': _('Rate limit selection'), 'queryset': queryset, 'object_name': force_text(opts.verbose_name), 'action_checkbox_name': helpers.ACTION_CHECKBOX_NAME, 'opts': opts, 'app_label': app_label, } return render_to_response( self.rate_limit_confirmation_template, context, context_instance=RequestContext(request), )
def user_send(user, article): taskname = "send.{user}".format(user.name) t = task(name=taskname)(send_shit) rate_limit(taskname, "1/s") return t(article)
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'] with current_app.default_connection() as connection: for task_name in tasks: rate_limit(task_name, rate, connection=connection) return None context = { 'title': _('Rate limit selection'), 'queryset': queryset, 'object_name': force_text(opts.verbose_name), 'action_checkbox_name': helpers.ACTION_CHECKBOX_NAME, 'opts': opts, 'app_label': app_label, } return render_to_response(self.rate_limit_confirmation_template, context, context_instance=RequestContext(request))
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"] with current_app.default_connection() as connection: for task_name in tasks: rate_limit(task_name, rate, connection=connection) return None context = { "title": _("Rate limit selection"), "queryset": queryset, "object_name": force_text(opts.verbose_name), "action_checkbox_name": helpers.ACTION_CHECKBOX_NAME, "opts": opts, "app_label": app_label, } return render_to_response( self.rate_limit_confirmation_template, context, context_instance=RequestContext(request) )
def selection_rate_limit(self): if not self.selected_task: return curses.beep() task = self.state.tasks[self.selected_task] if not task.name: return curses.beep() my, mx = self.win.getmaxyx() r = "New rate limit: " self.win.addstr(my - 2, 3, r, curses.A_BOLD | curses.A_UNDERLINE) self.win.addstr(my - 2, len(r) + 3, " " * (mx - len(r))) rlimit = self.readline(my - 2, 3 + len(r)) if rlimit: reply = control.rate_limit(task.name, rlimit.strip(), reply=True) self.alert_remote_control_reply(reply)
def test_rate_limit(self): control.rate_limit(PingTask.name, "100/m") self.assertIn("rate_limit", MockBroadcastPublisher.sent)