设定队列项调用时的前置、后置、错误回调。
当队列调用一项前,调用前置回调。
当队列调用一项后,调用后置回调。
当前置、后置、队列项调用抛出错误时,调用错误回调。
beforeCall(nameOrFunction, ...)
前置回调,nameOrFunction为队列项的全局函数名或函数引用,...为参数,可能没有也可能多个。
如果返回非nil且非false,则队列项、后置回调、错误回调都不被调用。
afterCall(nameOrFunction, ...)
后置回调,nameOrFunction为队列项的全局函数名或函数引用,...为函数返回结果,可能没有也可能多个。
本回调返回结果被忽略。
errorCall(nameOrFunction, error)
错误回调,nameOrFunction为队列项的全局函数名或函数引用,error为抛出的错误数据,可能为字符串、数字、nil等等。
可以用debug.traceback获得调用栈字符串,如果本回调返回字符串则打印,返回其他数据则忽略。
错误回调本身抛出错误时,打印一行类似error handling的字符串。
通常在前置回调中<_subqueue>(true),后置回调用<_subqueue>(true)及<_subqueue>(false),并提交数据库事务,错误回调中<_subqueue>(false),并回滚数据库事务;数据库事务通常延迟启动。
|