需要写一个接口.
业务:把一些数据放入cache里,数据有一个发送时间,这个发送时间到了,才执行入库操作。
对于chache里数据还能执行立即发送,停止,等待这些指令。
现在我不清楚,在chche里怎么去判断哪一条数据时间到了。去执行入库操作。
需要给cache放置一个定时器(一个线程),根据cache里面的数据发送时间,cache丢出这条数据,进行入库。而不是每条数据放置一个定时器(这样就是非常多的线程)。有什么好的办法,可以让cache(根据时间)知道要丢出的哪条数据吗,
求大神指点。
您可以使用定时任务来解决此问题。您可以使用多种方法来实现定时任务,例如使用线程、使用计时器或使用cron表达式。
在您的定时任务中,您可以每隔一段时间扫描缓存中的数据,并检查其发送时间是否已到。如果是,则可以将该数据插入数据库,并将其从缓存中删除。
在实现此功能时,还需要考虑如何处理定时任务本身的同步和并发问题。例如,您可能希望防止多个线程同时对缓存进行写入操作,或者在缓存中的数据被删除之前,防止新数据被插入。
在实现此功能时,您还可能希望考虑使用像Redis这样的缓存数据库,其中包含内置的定时任务功能。这样,您就可以使用Redis的定时任务功能来执行每隔一段时间的扫描,而无需自己实现定时任务。