我有一个bash脚本,其中包含两个连续的curl调用,比如这个
#!/bin/bash
# Stuff...
curl -X POST -d "data=<some_post_data>" http://url/to/rest/api
curl -X POST -d "data=<more_post_data>" http://url/to/rest/api
# More stuff
我的问题是只是调用1做某事。第一次通话,需要 10分钟才能完成:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 712 0 419 0 293 0 0 --:--:-- 0:10:05 --:--:-- 28
但第二个,仅用3秒就结束了:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 184 100 51 100 133 15 41 0:00:03 0:00:03 --:--:-- 41
查看后端日志(我的意思是,被调用的端点)看起来第二个调用永远不会达到其目标。我试过在两次通话之间睡30秒。没效果。
奇怪的是,如果我评论第一个电话,第二个电话正常呼叫(大约需要6分钟)
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 192 0 59 0 133 0 0 --:--:-- 0:05:47 --:--:-- 0
总体而言:我确实有几个卷曲调用(超过2个)的序列,但问题出在这两个调用之间。在那之前,所有以前的呼叫都正常运行。
有关正在发生的事情的任何想法?
答案 0 :(得分:0)
好的,问题与cURL无关。基本上,后端会在将结果发送到实际数据存储之前对结果进行缓存。所以,第二个cURL没有找到第一个存储的数据(它们是连接的,真的,我后来意识到)。我通过在两个电话之间休眠来修复它。因此,缓存系统有足够的时间来转储数据。