见过一个项目,地址便宜一半,重试把省下的钱全吃回去了。选代理IP类型的时候少有人算重试成本,这一项却常常决定最终花多少钱。一次失败要重跑多久、重跑要不要重新登录、重跑期间占不占并发名额,三项加起来就是单次重试的代价。便宜的地址类型失败率高,重试次数多,账面省下的钱会被重试吃回去,算过这笔账的人不会再只看单价。
重试成本怎么算
算三个数。单次任务的平均耗时、失败后重跑的固定开销、一天大概失败多少次。三个数乘起来,就是每天花在重试上的时间。这个时间如果超过人工成本,配置就该往上调一档。数字不用很准,估个量级就能比出高低。
- 统计一周的任务总数和失败数,算出失败率
- 记下每次重跑的平均耗时,含重新验证的时间
- 两项相乘,得到每天的重试时间成本
算出来的数,比直觉可靠。
两类地址的重试差别
代理IP类型在这里的差别很明显。池子调度的代理IP地址多、单价低,但单条质量参差,失败率偏高;固定地址单价高,单条质量稳定,失败率低。失败率高到一定程度,重试的时间成本会超过价差,这时候换固定地址反而更省。
压住重试次数有三个办法。一是把任务拆小,单次跑不完也不至于全废。二是把失败和超时分开统计,超时多说明线路拥堵,失败多说明地址质量差,两种原因的处理方式不同。三是设一次重试上限,跑三次还失败就换地址,别在一个坏地址上反复耗。
单价低不等于总成本低,重试的时间要折成钱算进去。
判断的临界点因业务而异。任务本身耗时长的,重试一次代价大,宁可买贵的地址;任务耗时短的,重试几次也不心疼,便宜的地址更划算。这个临界点自己算一遍,比听别人推荐准。
