質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

Q&A

解決済

1回答

1751閲覧

Python3でのwebsocketでデータを一定時間起きに取得するようにする

yu_2_8_2

総合スコア34

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

WebSocket

WebSocketとは双方向・全二重コミュニケーションのためのAPIでありプロトコルのことを指します。WebSocketはHTML5に密接に結びついており、多くのウェブブラウザの最新版に導入されています。

0グッド

0クリップ

投稿2019/06/11 14:22

websocketについての質問です。

websocketは購読しているチャンネルからデータを連続して受信していくものだと思うのですが、
例えばある商品の価格データを受信しているとき、5分おきなどにサンプリングしてcsvやdbなどに書き込んでいきたいです。

まだあまり知識がなく、どういう設計にすればいいか定石を知らないので、どこでtime.sleepし書き込めばいいかわかりません。
どなたか詳しい方いらっしゃいましたら、ざっくりでいいのでご教授くださると有難いです。

以下が現在書いているプログラムのwebsocketの部分(一応動く)です。

python3

1import websocket 2import json 3 4class Websocket(object): 5 def __init__(self, url): 6 self.loop = True 7 self.url = url 8 websocket.enableTrace(True) 9 10 self.ws = websocket.WebSocketApp(url=・・・, 11 on_open=self.on_open, 12 on_message=self.on_message, 13 on_close=self.on_close, 14 on_error=self.on_error) 15 16 17 def run(self): 18 while self.loop: 19 self.ws.run_forever() 20 21 def on_open(self, ws): 22 channels = { 23 'op' : 'subscribe', 24 'args':[ 25 "instrument:XBTUSD" 26 ] 27 } 28 ws.send(json.dumps(channels)) 29 30 def on_message(self, ws, message): 31 message = json.loads(message) #type: dict 32 33 34 if 'data' in message: 35 if 'openValue' in message['data'][0]: 36 print(message['data'][0]['openValue']) #ここの部分を5分に1回取得する 37 38 def on_close(self, ws): 39 print("disconnect") 40 def on_error(self, ws): 41 print("error") 42if __name__ == '__main__': 43 j = Websocket() 44 j.run()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

python

1executor = concurrent.futures.ThreadPoolExecutor(max_workers=2)

を使い解決済。

投稿2019/06/13 12:43

yu_2_8_2

総合スコア34

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問