EY-Officeでは、ECサイト ボロ ライディング ショップ のソフト開発とサポートを行っています。通常の業務は自動化されていますが、たまにしか行わない仕事はECサイトの運営者からの依頼で私が手動で行っていました。
手動で行っていた仕事
殆どのECサイトではバーゲンセールを行うと思います。バーゲンセールの告知は運営者が管理画面から入力できますが、セール価格への変更は運営者が決めた開始日時から終了日時で切り替えないといけません、とくに切り替え時間は午前0時だったりします。
サイトが出来た当初は、私がサーバーにログインしてSQLを実行していました ^^;
年に数回で作業自体は簡単なのですが、日時を間違えて迷惑をかけてしまったりしました。
また、このECサイトは海外の商品を扱っているので、たまに商品の価格を一括で変更する事があります。これも告知された日時に行う必用があります、やはり最初は手動で行っていました。
変更データは運営者がExcelで作るので、そのデータをチェックと読み込みを行うツールを作り、開発環境でデータを確認して、当日にサーバーにログインして読み込みツールを実行していました。
自動化ツール
自動化ツールにそんなに開発工数をかけるとことは出来ません。現在のツールを作った時点では Ruby on Rails に Active Job
はありませんでしたし、Sidekiq
のような Gem はありましたが汎用的過ぎて大げさだと思い、自作しました。
機能は簡単なもので:
- 実行するタスクの情報をDBに作成・変更する管理画面
- 1分に一度、上のDBをチェックし実行するタスクがあれば実行する
- タスクの登録はコードで記述
タスクの登録が設定ファイル等で出来るとカッコ良いですが、コードは全て私がメンテしているので新しいタスクはコーディングで追加する事にしました。
タスクにはRails(Active Record)のコードもあるし、外部コマンドの起動など色々なスタイルがあるので汎用性の高い自動化ツールを作ろうとするの大げさになり自動化ツールを作る事が出来なくなってしまいます。
このような自動化ツールは適度なバランスで設計する事が重要だと思います。
最後に
なぜ、こんな記事を書いたのかですが、今回ひさしぶりに価格の一括変更がありました。価格の一括変更は年に1回あるかどうかです、恥ずかしい事に「価格一括変更」タスクを追加した事を忘れていたのです。
管理画面のタスク管理画面を見て「価格一括変更」を発見した事で、今回は夜中にサーバーにログインせずにすみました。
自動化って良いですね!