前言
已經能從「臺灣證券交易所」抓資料、存入 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
5rake 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/
備註:之後文章修改更新,以個人部落格為主