实践动机和目标
目前具有社交功能的App中大量使用本地Sql来存储用户记录,同时为了优化用户体验,这些App都有意提供用户在无网(或弱网)环境下操作的需求。因此,在App中有必要有异步通信机制来处理(响应)用户的请求。
实现原理
1.通过在Sqlite中设立事件表(EventTable),来记录用户操作信息。
2.借由Lua提供的协程来处理用户请求,并向服务器发送请求。
3.完成与服务器的一次响应事件后,删除这一条操作事件。
建立事务表
在Sqlite中建立事务表,建议在表中设立一个时间戳类型的字段(EventDate)。采用时间戳类型的字段主要有两个目的:
1.作为事件的唯一标识符
2.时间戳类型本身可以作为字段进行排序
由此联想:Sqlite本身对每一行数据都会设置一个id,能否利用这个字段进行排序?
获取队列
队列的必要特性就是先进先出,那么就要在sql语句中实现。代码如下:
select * from EventTable order by EventDate