iT邦幫忙

2021 iThome 鐵人賽

DAY 25
0
自我挑戰組

Ruby on Rails 與它們相關的東西 II系列 第 25

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

前言

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

說明

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

實作

# 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 輸入

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/

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


上一篇
Day24 - 將臺灣證券交易所的除權除息計算結果表存入 DB
下一篇
Day26 - 用 Ruby on Rails 寫分析股票的技術指標
系列文
Ruby on Rails 與它們相關的東西 II30

尚未有邦友留言

立即登入留言