Cerco un modo per limitare quando viene chiamata una funzione, ma solo quando i parametri di input sono diversi, vale a dire:Sedano: limite di velocità sulle attività con gli stessi parametri
@app.task(rate_limit="60/s")
def api_call(user):
do_the_api_call()
for i in range(0,100):
api_call("antoine")
api_call("oscar")
quindi vorrei api_call("antoine")
da chiamare 60 volte al secondo e api_call("oscar")
60 volte al secondo.
Qualsiasi aiuto su come posso farlo?
--edit 27/04/2015 Ho provato a chiamare un'attività secondaria con rate_limit all'interno di un compito, ma non funziona nemmeno: Il rate_limit viene sempre applicata per tutte le attività secondarie o attività istanziati (che è logico).
@app.task(rate_limit="60/s")
def sub_api_call(user):
do_the_api_call()
@app.task
def api_call(user):
sub_api_call(user)
for i in range(0,100):
api_call("antoine")
api_call("oscar")
Il migliore!
non può semplicemente utilizzare @ app.task (rate_limit = 60) decoratore sul metodo? – reptilicus
Beh, io non la penso così dato che limiterà sia api_call ("antoine") che api_call ("Oscar") @ 30/s, e voglio che la restrizione sia applicata per parametro e non per funzione. Correzione – antoinet
, voglio che la restrizione sia applicata non solo per funzione ma anche per parametro. – antoinet