这个需求有两种实现思路:
第一种是不在对象中直接记录商品的过期状态,而是让程序在需要获取某个商品的状态时,根据商品的过期时间和当前时间来得出商品的过期状态。这种实现方式也可以满足基于商品过期状态查询对象的需求(在查询条件中指定过期时间早于当前时间即可查询到过期的商品)。
第二种是借助云引擎提供的定时任务实现每隔一段时间更新商品的状态。比如可以设置一个每 15 分钟执行的定时任务,让这个任务查询所有「过期时间在当前时间之前」并且「状态并非已过期」的商品,然后批量更新这些商品的状态。定时任务的执行频率可以根据业务需求来决定,比如每 15 分钟执行一次意味着商品的状态更新会有最多约 15 分钟的延迟。