半吊子开发 2013-07-30 05:50 采纳率: 0%
浏览 952

关于一个cache和timer的代码处理

需要写一个接口.
业务:把一些数据放入cache里,数据有一个发送时间,这个发送时间到了,才执行入库操作。
对于chache里数据还能执行立即发送,停止,等待这些指令。

现在我不清楚,在chche里怎么去判断哪一条数据时间到了。去执行入库操作。

需要给cache放置一个定时器(一个线程),根据cache里面的数据发送时间,cache丢出这条数据,进行入库。而不是每条数据放置一个定时器(这样就是非常多的线程)。有什么好的办法,可以让cache(根据时间)知道要丢出的哪条数据吗,

求大神指点。

  • 写回答

1条回答 默认 最新

  • ChatGPTᴼᴾᴱᴺᴬᴵ 2023-01-09 14:51
    关注

    您可以使用定时任务来解决此问题。您可以使用多种方法来实现定时任务,例如使用线程、使用计时器或使用cron表达式。

    在您的定时任务中,您可以每隔一段时间扫描缓存中的数据,并检查其发送时间是否已到。如果是,则可以将该数据插入数据库,并将其从缓存中删除。


    在实现此功能时,还需要考虑如何处理定时任务本身的同步和并发问题。例如,您可能希望防止多个线程同时对缓存进行写入操作,或者在缓存中的数据被删除之前,防止新数据被插入。


    在实现此功能时,您还可能希望考虑使用像Redis这样的缓存数据库,其中包含内置的定时任务功能。这样,您就可以使用Redis的定时任务功能来执行每隔一段时间的扫描,而无需自己实现定时任务。

    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器