Home >Backend Development >PHP Tutorial >如何更好地实现网站更新状态的需求?
我有这样一个需求。
有一系列的项目,这些项目分别由使用用户与审核人员操作。
用户添加一个项目A,审核人员审核项目A,这时候状态会随之更新。
但是有些状态,它不是实时修改的。比方说,这个项目A有一个状态修改的触发时间,到了这个时间点,项目A就会自动的改变状态。
我现在是每次打开项目时,都去查一下有哪些符合条件可以修改状态的时间点,如果找到了,就去修改它的状态。这样做的效率很低,因为项目一多,列表就打开很慢。
我想请问各位有没有更好的方法,在项目有很多状态的情况下,实现触发修改。
我有这样一个需求。
有一系列的项目,这些项目分别由使用用户与审核人员操作。
用户添加一个项目A,审核人员审核项目A,这时候状态会随之更新。
但是有些状态,它不是实时修改的。比方说,这个项目A有一个状态修改的触发时间,到了这个时间点,项目A就会自动的改变状态。
我现在是每次打开项目时,都去查一下有哪些符合条件可以修改状态的时间点,如果找到了,就去修改它的状态。这样做的效率很低,因为项目一多,列表就打开很慢。
我想请问各位有没有更好的方法,在项目有很多状态的情况下,实现触发修改。
有简单的方法,也有复杂的方法。
简单的,写个定时器,利用定时器程序去过呢关心,定期执行程序检查项目是否到了时间点,这样就能把更新操作和你打开项目的操作解耦。
复杂点的,消息队列,特别是复杂系统里面,一个事件的更新,可能会引起多个数据的联动修改。那么主事件触发后,会往消息队列中放一条消息,多个消息监听者收到消息后,会各自处理自己相关的信息数据。