【python】lolipopでバッチを定期実行する【cron】

code010 IT技術系

「5分置きにcryptpiaから、bitflyerの仮想通貨情報を取得したい」という依頼が来ました。

 私は最初に、jupyterNotebookやAWSのサーバーを使って、pythonプログラムを無限ループで回すことを考えました。しかし、jupyterNotebookは常時稼働しているPCが要りますし、AWSは負荷が掛かりすぎると費用が発生してしまいます。

 さて、どうしたものかと考えていたところ、依頼者はlolipopでwebsiteを開設していました。lolipopにはcronの機能がありますので、そちらを使うのが簡単・楽ちんと判断して、無事に開発・納品できました。

 躓いた点を中心に説明していきます。

はじめに

 まずは、ロリポップのSSHで、Pythonのバージョンが3.4以上になっていることを確認してください。
 そして、Pythonモジュール(bitflyerのapi)をインストールしましょう。

code012

プログラムの説明

 下記に全体のソースを纏めました。
 中身のロジックを簡単に説明していきます。

・ファイルの初めに必ず記述して、エンコードはutf-8で保存しましょう。

・bitflyerのapiから、注文数の最大値1000件を取得します。

・取得した最新日時から、10秒前の日時を取ります。

・注文数分loopを回し、buyとsellで分けて数量を加算していきます。

・bitflyerのapiから、現在の価格を取得します。

・ログファイルに書き込みます。

cronの設定

・パーミッションの設定をします。
.pyファイルのパーミッションを700にしましょう。
code013

・パスの設定をします。
Web以下のパスを記述します。

code014

まとめ

コピペして、ロジックを書き換えて頂ければ、簡単・楽ちんにバッチプログラムが組めて便利ですよ。

ロリポップのcronは、画面で設定できるのでcrontabの知識が無くても大丈夫です。

タイトルとURLをコピーしました