task.go 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. package services
  2. import (
  3. "context"
  4. "eta/eta_crawler/services/sci99"
  5. "eta/eta_crawler/utils"
  6. "fmt"
  7. "strconv"
  8. "time"
  9. "github.com/beego/beego/v2/task"
  10. )
  11. func Task() {
  12. //sync3()
  13. //syncAllComTradeMapping()
  14. //syncAllComTradeMapping2()
  15. //syncAllComTradeMapping3()
  16. //return
  17. fmt.Println("start crawler")
  18. //SyncRankingFromShangHai()
  19. //SyncRankingFromIne()
  20. //FileCoalCoastal()
  21. //FileCoalInland()
  22. if utils.BusinessCode == utils.BusinessCodeRelease {
  23. refreshData := task.NewTask("refreshData", "0 0,30 16-18 * * *", RefreshData)
  24. refreshEic := task.NewTask("RefreshEic", "0 0 2,6 * * *", RefreshEic)
  25. refreshCoal := task.NewTask("RefreshCoal", "0 0,30 16-23 * * *", RefreshCoal)
  26. refreshMeeting := task.NewTask("RefreshMeeting", "0 15 7-19/2 * * *", RefreshMeetingProbabilities)
  27. // refreshVisitors := task.NewTask("RefreshChangesVisitorsCovid", "0 30 2-22/10 * * *", RefreshChangesVisitorsCovid)
  28. syncEiaSteoData := task.NewTask("SyncEiaSteoData", "0 0 22 * * *", SyncEiaSteoData)
  29. syncYearComTrade := task.NewTask("SyncYearComTrade", "0 0 3 1 1 *", SyncYearComTrade) // 每年一月一号同步
  30. syncYearMonthComTrade := task.NewTask("SyncYearMonthComTrade", "0 0 3 1 * *", SyncYearMonthComTrade) // 每月1号同步
  31. crawlerIcpi := task.NewTask("refreshData", "0 0,30 16-23 * * *", CrawlerIcpi) //居民消费价格指数
  32. //lyData := task.NewTask("refreshData", "0 0,30 16-23 * * *", liangyou.LyDataDeal) //todo 粮油商务网 时间上线定
  33. // 统计局-分月季年爬
  34. //refreshNationalMonthA := task.NewTask("RefreshNationalMonthDbA", "0 15 2 10 * *", national_data.RefreshNationalMonthDbA)
  35. //refreshNationalMonthB := task.NewTask("RefreshNationalMonthDbB", "0 15 2 16 * *", national_data.RefreshNationalMonthDbB)
  36. //refreshNationalQuarter := task.NewTask("RefreshNationalQuarterDb", "0 25 1 15 * *", national_data.RefreshNationalQuarterDb)
  37. //refreshNationalYearA := task.NewTask("RefreshNationalYearDbA", "0 45 1 20 * *", national_data.RefreshNationalYearDbA)
  38. //refreshNationalYearB := task.NewTask("RefreshNationalYearDbB", "0 45 1 25 * *", national_data.RefreshNationalYearDbB)
  39. task.AddTask("数据爬取", refreshData)
  40. task.AddTask("欧洲天然气爬取", refreshEic)
  41. task.AddTask("中国煤炭网爬取", refreshCoal)
  42. task.AddTask("美联储加息概率爬取", refreshMeeting)
  43. //task.AddTask("谷歌出行指数爬取", refreshVisitors)
  44. task.AddTask("eia steo报告", syncEiaSteoData) //每天22点爬一次
  45. task.AddTask("UN年度数据", syncYearComTrade) //每年一月一号的3点同步
  46. task.AddTask("UN月度数据", syncYearMonthComTrade) //每月1号的3点同步
  47. task.AddTask("居民消费价格指数", crawlerIcpi) //每月1号的3点同步
  48. //task.AddTask("粮油商务网", lyData)
  49. }
  50. if utils.BusinessCode == utils.BusinessCodeFuBang {
  51. // 仅富邦
  52. sci99.Scii99(nil)
  53. sci99 := task.NewTask("refreshSci99", "0 0,30 16-20 * * *", sci99.Scii99) //卓创资讯
  54. task.AddTask("卓创资讯", sci99)
  55. }
  56. if utils.BusinessCode == utils.BusinessCodeJinRui {
  57. crawlerSmm := task.NewTask("refreshShangHaiSmmData", "0 0 11-20 * * *", SyncShangHaiSmm) // 上海有色网爬虫
  58. task.AddTask("上海有色网指标爬取", crawlerSmm) //每天10-20点, 每小时爬一次
  59. crawlerSmmExcel := task.NewTask("refreshShangHaiSmmDataExcel", "0/30 * * * * *", SyncOldExcel) // 上海有色网爬虫
  60. task.AddTask("shanghaiOldExcel", crawlerSmmExcel) // 爬取成功后删除该任务
  61. }
  62. //task.AddTask("统计局数据爬取-月度A", refreshNationalMonthA) // 每月10号2:15执行
  63. //task.AddTask("统计局数据爬取-月度B", refreshNationalMonthB) // 每月16号2:15执行
  64. //task.AddTask("统计局数据爬取-季度", refreshNationalQuarter) // 每月15号1:25执行
  65. //task.AddTask("统计局数据爬取-年度A", refreshNationalYearA) // 每月20日1:45执行
  66. //task.AddTask("统计局数据爬取-年度B", refreshNationalYearB) // 每月25日1:45执行
  67. task.StartTask()
  68. //FileCoalJsm()
  69. //FileCoalFirm()
  70. //FileCoalCoastal()
  71. //FileCoalInland()
  72. //SyncRankingFromDalianSearch(0)
  73. fmt.Println("end crawler")
  74. }
  75. func RefreshData(cont context.Context) (err error) {
  76. //大连
  77. SyncRankingFromDalianSearch(0)
  78. SyncRankingFromZhengzhou()
  79. //SyncRankingFromShangHai()
  80. //SyncRankingFromIne()
  81. SyncRankingFromCffex()
  82. //SyncStorageFromEic()
  83. //广州期货交易所
  84. {
  85. n := 2
  86. //广州交易所期货-日行情
  87. for i := n; i >= 0; i-- {
  88. date := time.Now().AddDate(0, 0, -i)
  89. if date.Weekday() == time.Saturday || date.Weekday() == time.Sunday {
  90. continue
  91. }
  92. CrawlerFromGuangzhouDayQuotes(date)
  93. rn := utils.RangeRand(10, 60)
  94. fmt.Println("i:"+strconv.Itoa(i)+" date:", date.Format(utils.FormatDate)+";sleep:", strconv.Itoa(int(rn)))
  95. time.Sleep(time.Duration(rn) * time.Second)
  96. }
  97. //合约
  98. for i := n; i >= 0; i-- {
  99. date := time.Now().AddDate(0, 0, -i)
  100. if date.Weekday() == time.Saturday || date.Weekday() == time.Sunday {
  101. continue
  102. }
  103. fmt.Println("date:", date.Format(utils.FormatDate))
  104. CrawlerFromGuangzhouContract(date)
  105. rn := utils.RangeRand(3, 15)
  106. fmt.Println("i:"+strconv.Itoa(i)+" date:", date.Format(utils.FormatDate)+";sleep:", strconv.Itoa(int(rn)))
  107. time.Sleep(time.Duration(rn) * time.Second)
  108. }
  109. //日成交持仓排名
  110. for i := n; i >= 0; i-- {
  111. date := time.Now().AddDate(0, 0, -i)
  112. if date.Weekday() == time.Saturday || date.Weekday() == time.Sunday {
  113. continue
  114. }
  115. fmt.Println("date:", date.Format(utils.FormatDate))
  116. CrawlerFromGuangzhouDealPosiQuotes(date)
  117. rn := utils.RangeRand(3, 15)
  118. fmt.Println("i:"+strconv.Itoa(i)+" date:", date.Format(utils.FormatDate)+";sleep:", strconv.Itoa(int(rn)))
  119. time.Sleep(time.Duration(rn) * time.Second)
  120. }
  121. //广州交易所期货-仓单日报->开始日期:2023-06-20
  122. for i := n; i >= 0; i-- {
  123. date := time.Now().AddDate(0, 0, -i)
  124. if date.Weekday() == time.Saturday || date.Weekday() == time.Sunday {
  125. continue
  126. }
  127. fmt.Println("date:", date.Format(utils.FormatDate))
  128. CrawlerFromGuangzhouWbillWeeklyQuotes(date)
  129. rn := utils.RangeRand(3, 15)
  130. fmt.Println("i:"+strconv.Itoa(i)+" date:", date.Format(utils.FormatDate)+";sleep:", strconv.Itoa(int(rn)))
  131. time.Sleep(time.Duration(rn) * time.Second)
  132. }
  133. //一次性交割卖方仓单查询
  134. for i := n; i >= 0; i-- {
  135. date := time.Now().AddDate(0, -i, 0)
  136. fmt.Println("date:", date.Format(utils.FormatDate))
  137. CrawlerFromGuangzhouCongregateDeliveryQuotes(date)
  138. rn := utils.RangeRand(3, 15)
  139. fmt.Println("i:"+strconv.Itoa(i)+" date:", date.Format(utils.FormatDate)+";sleep:", strconv.Itoa(int(rn)))
  140. time.Sleep(time.Duration(rn) * time.Second)
  141. }
  142. //更新指标日期
  143. CrawlerFromGuangzhouIndexMinAndMaxDate()
  144. }
  145. return
  146. }
  147. func RefreshEic(cont context.Context) (err error) {
  148. SyncStorageFromEicV2()
  149. return
  150. }
  151. func RefreshCoal(cont context.Context) (err error) {
  152. FileCoalJsm()
  153. FileCoalFirm()
  154. FileCoalCoastal()
  155. FileCoalInland()
  156. return
  157. }
  158. func RefreshChangesVisitorsCovid(cont context.Context) (err error) {
  159. err = AddSourceChangesVisitorsCovid()
  160. return
  161. }
  162. //func Task2() {
  163. // fmt.Println("start")
  164. //
  165. // var cont context.Context
  166. // _ = national_data.RefreshNationalYearDbA(cont)
  167. //
  168. // //_ = national_data.RefreshNationalYearDbB(cont)
  169. //
  170. // //_ = national_data.ApiTest()
  171. // fmt.Println("end")
  172. //}
  173. func Task123() {
  174. fmt.Println("start")
  175. ctx := new(context.Context)
  176. CrawlerIcpi(*ctx)
  177. fmt.Println("end")
  178. }