关于重复发布文章的改进
同步文章使用了Linux系统的Cron服务,通过命令 curl 请求服务器url 执行更新,将发布时间 小于或等于 当前时间的文章发布到osc博客中去。
实际操作发现存在同一篇文章多次重复同步的问题,推测是在网络不好的情况下,文章发布会超过一分钟,甚至更多,由于定时任务是每分钟执行一次,这时就可能产生多个crond并行, 其实最根本原因是cron使用的curl默认情况没有设定超时时间,会一直等待请求响应,当网络突然好转时,会在一瞬间将多篇文章更新上去。
目前的做法是限制curl的最大执行时间为45秒,理论上只要小于一分钟就可以了,只要不同时出现多个crond进程就行了。
然后对同步的url的action进行了加锁处理,使用的库是 texthtml/php-lock ,简单的文件锁就够用了,保证一篇文章同一时间只有一个请求同步的操作,同时对guzzle设置了timeout参数,时间限制在40秒。
以上是 关于重复发布文章的改进 的全部内容, 来源链接: utcz.com/z/511361.html