关于重复发布文章的改进

♀尐吖头ヾ 提交于 2019-12-01 22:32:10

同步文章使用了Linux系统的Cron服务,通过命令 curl 请求服务器url 执行更新,将发布时间 小于或等于 当前时间的文章发布到osc博客中去。

实际操作发现存在同一篇文章多次重复同步的问题,推测是在网络不好的情况下,文章发布会超过一分钟,甚至更多,由于定时任务是每分钟执行一次,这时就可能产生多个crond并行, 其实最根本原因是cron使用的curl默认情况没有设定超时时间,会一直等待请求响应,当网络突然好转时,会在一瞬间将多篇文章更新上去。

目前的做法是限制curl的最大执行时间为45秒,理论上只要小于一分钟就可以了,只要不同时出现多个crond进程就行了。

然后对同步的url的action进行了加锁处理,使用的库是  texthtml/php-lock ,简单的文件锁就够用了,保证一篇文章同一时间只有一个请求同步的操作,同时对guzzle设置了timeout参数,时间限制在40秒。
 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!