关于重复发布文章的改进

大兔子大兔子 提交于 2019-12-06 05:12:05

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

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

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

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

 

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