比如在接口中执行某些操作之后,执行异步通知的操作但不使用消息队列或redis,可以通过信号的方式来做。
from flask.signals import Namespace
_signal = Namespace()
apply_task_signal = _signal.signal(name='some', doc='')
def apply_task_send(action_type, action_method, action_data, namespace='default', **kwargs):
apply_task_signal.send(current_app._get_current_object(),namespace=namespace,action_method=action_method, action_data=action_data,action_type=action_type, **kwargs)
def apply_task_signal_callback(sender,namespace, action_type,action_method,action_data,**kwargs):
taskmanager.delay
taskmanager.apply_async
class TaskManager:
def __init__(self,namespace,action_type,action_method,action_data,*args,**kwargs):
self.namespace = namespace
self.action_type = action_type
...
self.handler = getattr(se