浏览代码

开放抢购总时间,抢购任务数,间隔时间可通过配置文件设置

main
ztino 5 年前
父节点
当前提交
f0fbc073f8
  1. 19
      cmd/seckill.go
  2. 8
      conf.ini

19
cmd/seckill.go

@ -11,6 +11,7 @@ import (
"log" "log"
"net/http" "net/http"
"os" "os"
"strconv"
"time" "time"
) )
@ -54,7 +55,10 @@ func startSeckill(cmd *cobra.Command, args []string) {
seckill:=jd_seckill.NewSeckill(common.Client,common.Config) seckill:=jd_seckill.NewSeckill(common.Client,common.Config)
//开启抢购任务,第二个参数为开启几个协程 //开启抢购任务,第二个参数为开启几个协程
//怕封号的可以减少协程数量,相反抢到的成功率也减低了 //怕封号的可以减少协程数量,相反抢到的成功率也减低了
Start(seckill,5) //抢购任务数读取配置文件
str:=common.Config.MustValue("config","task_num","5")
taskNum,_:=strconv.Atoi(str)
Start(seckill,taskNum)
} }
} }
@ -69,17 +73,22 @@ func GetJdTime() (int64,error) {
} }
func Start(seckill *jd_seckill.Seckill,taskNum int) { func Start(seckill *jd_seckill.Seckill,taskNum int) {
seckillTotalTime:=time.Now().Add(2*time.Minute).Unix() //抢购总时间读取配置文件
str:=common.Config.MustValue("config","seckill_time","2")
seckillTime,_:=strconv.Atoi(str)
seckillTotalTime:=time.Now().Add(time.Duration(seckillTime)*time.Minute).Unix()
//抢购间隔时间读取配置文件
str=common.Config.MustValue("config","ticker_time","1500")
tickerTime,_:=strconv.Atoi(str)
//开始检测抢购状态 //开始检测抢购状态
go CheckSeckillStatus() go CheckSeckillStatus()
//抢购总时间两分钟,超时程序自动退出 //抢购总时间超时程序自动退出
for time.Now().Unix()<seckillTotalTime { for time.Now().Unix()<seckillTotalTime {
for i:=1;i<=taskNum;i++ { for i:=1;i<=taskNum;i++ {
go task(seckill) go task(seckill)
} }
//每隔1.5秒执行一次
//怕封号的可以增加间隔时间,相反抢到的成功率也减低了 //怕封号的可以增加间隔时间,相反抢到的成功率也减低了
time.Sleep(1500*time.Millisecond) time.Sleep(time.Duration(tickerTime)*time.Millisecond)
} }
log.Println("抢购结束,具体详情请查看日志") log.Println("抢购结束,具体详情请查看日志")
} }

8
conf.ini

@ -9,8 +9,14 @@ fp =
sku_id = 100012043978 sku_id = 100012043978
# 抢购数量 # 抢购数量
seckill_num = 2 seckill_num = 2
# 设定时间 # 2020-12-09 10:00:00.100000 # 抢购开始时间设定 2021-01-01 09:59:59
buy_time = 2021-01-01 09:59:59 buy_time = 2021-01-01 09:59:59
# 抢购总时间,单位:分钟,默认两分钟
seckill_time =
# 抢购任务数量,默认5个
task_num =
# 每次抢购间隔时间,单位:毫秒,默认1500毫秒,每1000毫秒等于1秒
ticker_time =
# 默认UA # 默认UA
default_user_agent = Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36 default_user_agent = Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36

正在加载...
取消
保存