Where
by Where
~1 min read

分类

任务调度

公司业务在使用缓存的过程中发现,缓存到期需要去数据库查询最新数据然后缓存起来使用,就是在缓存到期与缓存重建的一瞬间可能会有大量并发同时穿透缓存去数据库查询数据,最后导致数据库死锁,然后宕机。

现在的解决方案是,为缓存设置默认值为空,然后后台去刷新替换这个缓存中的数据,这样就不存在缓存失效的问题了。

后台刷新缓存就要用到 Cron 服务了,这些介绍一下。

注:

首先是编写自己的任务调度部分的业务逻辑代码,这个在文档中有介绍,不是很复杂。

接下来是关于系统 Cron 服务的,我的系统是Cent OS 7.0 使用crontab -l可以查看当前的 cron 项目列表,使用crontab -e编辑 cron 项目 添加自己的进去: * * * * * /user/bin/php /path/to/artisan schedule:run >> /dev/null 2>&1
修改这行代码中的,php,artisn路径为自己的,然后编辑 Cron 文件就可以了。 不需要重启 Cron 服务就可以运行了。

关于 Cron 服务的介绍,可以详细看注解中的链接。