質問編集履歴
1
async.gatherを使ったコードに変更しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,11 +4,21 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
今回相談したいのは、前回の処理メッセージを受け取り処理している最中に、次のメッセージの処理を始めることは可能でしょうかという点です。
|
7
|
+
今回相談したいのは、前回の処理メッセージを受け取り、処理している最中に、次のメッセージの処理を始めることは可能でしょうかという点です。
|
8
8
|
|
9
9
|
|
10
10
|
|
11
11
|
clientの処理でいうと、eventメソッドのwait終わりのメッセージが表示される前に「受け取り直後」というメッセージを表示させたいと思っています。
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
12/27追記
|
16
|
+
|
17
|
+
gatherを使ったコードに変更してみました。
|
18
|
+
|
19
|
+
メソッド1とメソッド2が同時に始まるようになったのですが、受け取ったメッセージに対して、メソッド1と2が終わらないと、次のメッセージの受け取りが始まりません。
|
20
|
+
|
21
|
+
メソッド1だけ終わったら次のメッセージを受け取りに行くといった形にしたいのですが、可能でしょうか?
|
12
22
|
|
13
23
|
|
14
24
|
|
@@ -36,39 +46,37 @@
|
|
36
46
|
|
37
47
|
|
38
48
|
|
39
|
-
async def stream():
|
40
|
-
|
41
|
-
uri = 'ws://127.0.0.1:5678/'
|
42
|
-
|
43
|
-
|
44
|
-
|
45
49
|
async with websockets.connect(uri, ping_timeout=None) as ws:
|
46
50
|
|
47
51
|
while not ws.closed:
|
52
|
+
|
53
|
+
|
48
54
|
|
49
55
|
response = await ws.recv()
|
50
56
|
|
51
57
|
board = json.loads(response)
|
52
58
|
|
53
|
-
|
59
|
+
await asyncio.gather(
|
54
60
|
|
55
|
-
|
61
|
+
event(board),
|
56
62
|
|
57
|
-
|
63
|
+
get_url()
|
58
64
|
|
59
|
-
print(datetime.datetime.now())
|
60
|
-
|
61
|
-
|
65
|
+
)
|
62
66
|
|
63
67
|
|
64
68
|
|
65
69
|
async def event(board):
|
66
70
|
|
67
|
-
print('これから
|
71
|
+
print('これから5秒待つ' + str(board))
|
68
72
|
|
69
|
-
await asyncio.sleep(
|
73
|
+
await asyncio.sleep(5)
|
70
74
|
|
71
75
|
print('wait終わり')
|
76
|
+
|
77
|
+
print(datetime.datetime.now())
|
78
|
+
|
79
|
+
|
72
80
|
|
73
81
|
|
74
82
|
|
@@ -154,28 +162,22 @@
|
|
154
162
|
|
155
163
|
<結果>
|
156
164
|
|
157
|
-
|
165
|
+
これから5秒待つ{'message': 'longlongstr', 'time': '2020-12-26T23:43:58.316069Z'}
|
158
166
|
|
159
|
-
|
167
|
+
b'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
160
168
|
|
161
169
|
wait終わり
|
162
170
|
|
163
|
-
|
171
|
+
2020-12-27 08:44:03.311604
|
164
172
|
|
165
|
-
2020-12-26
|
173
|
+
これから5秒待つ{'message': 'longlongstr', 'time': '2020-12-26T23:44:00.082327Z'}
|
166
174
|
|
167
|
-
b'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN
|
175
|
+
b'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
168
|
-
|
169
|
-
wait前 {'message': 'longlongstr', 'time': '2020-12-26T14:32:48.835207Z'}
|
170
|
-
|
171
|
-
これから2秒待つ
|
172
176
|
|
173
177
|
wait終わり
|
174
178
|
|
175
|
-
|
179
|
+
2020-12-27 08:44:08.321386
|
176
180
|
|
177
|
-
2020-12-26
|
181
|
+
これから5秒待つ{'message': 'longlongstr', 'time': '2020-12-26T23:44:02.372114Z'}
|
178
182
|
|
179
183
|
b'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
180
|
-
|
181
|
-
wait前 {'message': 'longlongstr', 'time': '2020-12-26T14:32:48.935470Z'}
|