【发布时间】:2016-01-11 13:11:15
【问题描述】:
我有一个异步管理模块调用的应用程序:
- 它请求一个触发自身的延迟
- 附加自定义回调
- 检查返回的代码是否=CONTINUE,否则处理错误
这是返回延迟到主应用程序的代码:
def xxfi_connect(self, hostname):
d = defer.Deferred()
d.callback(Milter.ReturnCodes.CONTINUE)
return d
要异步附加一些代码,我需要将我的函数调用挂接到延迟函数中,如下所示:
d = defer.Deferred()
d.addCallback(self.run_mods, application.L_CONNECT)
d.callback(Milter.ReturnCodes.CONTINUE)
问题是每个连接的函数都会收到一个包含回调参数(application.L_CONNECT)的参数。
是否可以在不传输每个函数调用的返回码的情况下实现这一点?
理想情况下,我希望我的回调函数是这样的:
def run_mods(self, level):
pass
而不是
def run_mods(self, code, level):
pass
因为code (Milter.ReturnCodes.CONTINUE) 只需要在链的末端
【问题讨论】: