当前位置:Gxlcms > 数据库问题 > sqlalchemy中使用event设置条件触发短信与邮件通知

sqlalchemy中使用event设置条件触发短信与邮件通知

时间:2021-07-01 10:21:17 帮助过:2人阅读

set",retval=True) def pay_success_reminder(target, value, oldvalue, initiator): ‘‘‘ 已经充值成功,给用户发送提醒 :return: ‘‘‘ if value==oldvalue:return value if value=="pay_success":#支付成功 try:
......
pass except Exception as e: pass return value

这个事件在订单状态改变的时候就会触发,不幸的事,他触发在事务当中,当然,如果在其中另外线程去执行发送短信与邮件应该也无妨。但处于某些原因我希望在事务处理完成之后调用。

 

2.方式二

另外一种方式,监听对象的更新事件,并在更新事件处理中监听这个session commit事件。这样就能够完成commit之后对该对象的处理。

def pay_success_reminder2(order_no):
    def func(session):
        try:
           ......
           pass           
        except Exception as e:
            pass
        return True
    return func

@event.listens_for(Order, after_insert,raw=True)
@event.listens_for(Order, after_update,raw=True)
def pay_success_reminder1(mapper, connection, target):#
    ‘‘‘
     已经充值成功,给用户发送提醒
    :return:
    ‘‘‘
    if target.dict["status"]!=target.committed_state["status"] and target.dict["status"]=="pay_success":
        event.listen(target.session,"after_commit",pay_success_reminder2(target.dict["order_no"]) )

如果需要将某些信息传递给session状态监听处理函数,则在需要使用函数包装的方式传递变量。

 

sqlalchemy中使用event设置条件触发短信与邮件通知

标签:

人气教程排行