首页 > 解决方案 > cronjob 执行一个包含大约 100 个 curl url 的脚本 - 不好的做法?

问题描述

我正在编写一个 cron 作业,它将执行一个脚本,该脚本将加载多达 100 个 url,每个 url 都有将在执行时被 memcached 的数据。每个 url 到结束/加载的时间可能需要 10 秒到 15 分钟,每个 url 从数据库加载数据并将结果作为 json 返回,并缓存结果。该脚本的主要目的是在早上缓存结果数据(00:00 - 直到缓存所有内容所需的任何时间),因此早上人们不必等待数据再次缓存.

网址是 api 网址。curl 会等待每次执行结束吗?这被认为是不好的做法吗?到目前为止还没有缓存,所以我正在尝试实现它,将最常用的 url 数据缓存 24 小时或类似时间。

标签: phpcurlcronphp-curl

解决方案


确保你的脚本不会超时,所以从 BASH 或其他东西运行它,而不是通过服务器(Apache、NGINX 等)。

另外:确保你的 curl 命令等待足够长的时间,查看 curl 规范。

https://unix.stackexchange.com/questions/94604/does-curl-have-a-timeout/94612

最后:确保如果 100 个中有 1 个变坏,您不会出错。

如果你能合理地满足/解决这三个可能的问题,我认为你应该没问题。(我总是将输出发送到我自己的邮件中,以密切关注它)


推荐阅读