你必須很努力

Day25 - 透過 Rake 自動下載處理臺灣證券交易所的資料

2021/10/08
字數統計: 384閱讀時間: 1 min

前言

已經能從「臺灣證券交易所」抓資料、存入 DB,接下來要做自動化處理

說明

由於我電腦沒有 24 小時開著,加上專案也不會一直開著,需要時才會手動下 Rake 執行,因此沒有寫在 schedule,這部分可因需求,自行調整,這邊以 Rake 為例

實作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# lib/tasks/twse.rake

namespace :twse do

desc "auto execute all"
task auto: :environment do
Rake::Task["twse:download_all"].invoke
Rake::Task["twse:save_all"].invoke
end

desc "download twse ALLBUT0999、TWT49U data"
task download_all: :environment do
Rake::Task["twse:download_file"].invoke
Rake::Task["twse:download_dr_file"].invoke
end

desc "download twse ALLBUT0999 每日收盤行情(全部(不含權證、牛熊證、可展延牛熊證)) data"
task download_file: :environment do
Twse::Allbut0999::Download.new.execute
end

desc "download twse TWT49U 除權除息計算結果表 data"
task download_dr_file: :environment do
Twse::Twt49u::Download.new.execute
end

desc "ALLBUT0999、TWT49U CVS save to database"
task save_all: :environment do
Rake::Task["twse:save_dr_to_db"].invoke
Rake::Task["twse:save_to_db"].invoke
end

desc "ALLBUT0999 CVS save to database"
task save_to_db: :environment do
Twse::Allbut0999::SaveToDb.new.execute
end

desc "TWT49U CVS save to database"
task save_dr_to_db: :environment do
Twse::Twt49u::SaveToDb.new.execute
end

end

在 Terminal 輸入

1
2
3
4
5
rake twse:auto

# or

bundle exec rake twse:auto

實際執行畫面

小結

現在只需要手動下一行 code 就會自動下載、存入 DB、上傳到 GitHub,非常的方便

工程師的特性,發現要做重複的事情時,會想辦法做成自動化處理~


鐵人賽文章連結:https://ithelp.ithome.com.tw/articles/10273391
medium 文章連結:https://link.medium.com/wzKY4dNuTjb
本文同步發布於 小菜的 Blog https://riverye.com/

備註:之後文章修改更新,以個人部落格為主

原文連結:https://riverye.com/2021/10/08/Day25-透過-Rake-自動下載處理臺灣證券交易所的資料/

發表日期:2021-10-08

更新日期:2021-09-27

CATALOG
  1. 1. 前言
  2. 2. 說明
  3. 3. 實作
  4. 4. 實際執行畫面
  5. 5. 小結