g冒险rest api的python客户端
django-dispatcher的Python项目详细描述
#django dispatcher
逻辑引擎,用于确定要执行的事情的顺序
有时必须按顺序运行一系列事情。这是一种基于
配置的方法,可以实现这一点。
典型用法
--
1。创建一些过渡对象。它们基本上是接口,
需要定义一些方法和属性,并用
在适当的时间构建一些上下文来奖励您。
所需的函数/参数包括:
-最终状态(字符串)
-是否有效(函数返回布尔值)
-上下文(函数返回dict)
````
调度器导入转换
Class Cart2DayReminder(转换):
Final_State=Cart_2_Day_Reminder_Sent
Def OnlineBooking(self):
如果self.\OnlineBooking为none:
self.\OnlineBooking=OnlineBooking.objects.get(pk=self.resources['Online撸Booking'])
返回self.\u onlinebooking
u onlinebooking=none
@property
def profile(self):
如果self.\u profile为none:
self.\u profile=self.onlinebooking.user和self.onlinebooking.user.profile
return self.\u profile
u profile=none
self.onlinebooking.date\u updated<;(datetime.now()-timedelta(days=2)):
self.errors.append('预订是在两天前创建的')
return false
def build\u context(self):
return{
“预订id”:self.onlinebooking.id,
“电子邮件地址”:self.profile.email,
}
Cart1WeekReminder类(转换):
…
````
2。创建配置,列出可能发生的转换
```
dispatcher配置{
“链”:[
{
“链类型”:“废弃的购物车”,
“转换”:{
新的:[cart2dayminder,cart1weekreminder],
cart2dayminder.final状态:[cart1weekreminder,],
cart1weekreminder.final状态:[],
}
}
]
}
````
>3。使用上述设置初始化调度程序。你必须自己决定“链”类型。其名称必须与上述配置相同。我们包括“请求”,以跟踪请求从何处发出。
`````
Dispatcher=Dispatcher(
Chain\u type=”Disposed\u Cart“,
Chain\u configs=Dispatcher配置,
Requits\u by=”Cart\u放弃脚本“
})
````
4。提供查询资源以搜索链。链
将使用“and”语句进行查询,这意味着检索链时所有资源都必须
存在。
```
dispatcher.get\u或_create\u链([
('online\u booking','123456'),
('customer','57844')
)
```
<5。为链提供回调。如果链转换到新的
有效状态,则将发送您传递的任何回调。回调函数接受传入的转换和指定的任何回调参数。
```
def some_callback(transition,\**callback_args):
some magical
dispatcher.execute_chain(callback=some_callback,callback_args={})
```
逻辑引擎,用于确定要执行的事情的顺序
有时必须按顺序运行一系列事情。这是一种基于
配置的方法,可以实现这一点。
典型用法
--
1。创建一些过渡对象。它们基本上是接口,
需要定义一些方法和属性,并用
在适当的时间构建一些上下文来奖励您。
所需的函数/参数包括:
-最终状态(字符串)
-是否有效(函数返回布尔值)
-上下文(函数返回dict)
````
调度器导入转换
Class Cart2DayReminder(转换):
Final_State=Cart_2_Day_Reminder_Sent
如果self.\OnlineBooking为none:
self.\OnlineBooking=OnlineBooking.objects.get(pk=self.resources['Online撸Booking'])
返回self.\u onlinebooking
u onlinebooking=none
@property
def profile(self):
如果self.\u profile为none:
self.\u profile=self.onlinebooking.user和self.onlinebooking.user.profile
return self.\u profile
u profile=none
self.onlinebooking.date\u updated<;(datetime.now()-timedelta(days=2)):
self.errors.append('预订是在两天前创建的')
return false
def build\u context(self):
return{
“预订id”:self.onlinebooking.id,
“电子邮件地址”:self.profile.email,
}
Cart1WeekReminder类(转换):
…
````
2。创建配置,列出可能发生的转换
```
dispatcher配置{
“链”:[
{
“链类型”:“废弃的购物车”,
“转换”:{
新的:[cart2dayminder,cart1weekreminder],
cart2dayminder.final状态:[cart1weekreminder,],
cart1weekreminder.final状态:[],
}
}
]
}
````
>3。使用上述设置初始化调度程序。你必须自己决定“链”类型。其名称必须与上述配置相同。我们包括“请求”,以跟踪请求从何处发出。
`````
Dispatcher=Dispatcher(
Chain\u type=”Disposed\u Cart“,
Chain\u configs=Dispatcher配置,
Requits\u by=”Cart\u放弃脚本“
})
````
4。提供查询资源以搜索链。链
将使用“and”语句进行查询,这意味着检索链时所有资源都必须
存在。
```
dispatcher.get\u或_create\u链([
('online\u booking','123456'),
('customer','57844')
)
```
<5。为链提供回调。如果链转换到新的
有效状态,则将发送您传递的任何回调。回调函数接受传入的转换和指定的任何回调参数。
```
def some_callback(transition,\**callback_args):
some magical
dispatcher.execute_chain(callback=some_callback,callback_args={})
```