回答編集履歴

2

Queue不要のため修正

2020/12/30 03:24

投稿

退会済みユーザー
test CHANGED
@@ -1,7 +1,3 @@
1
- キューにポンポン投入して順番に実行していきます。
2
-
3
-
4
-
5
1
  実行を止めるためのフラグのところはお行儀が悪いかもしれませんがとりあえずの実装です。
6
2
 
7
3
 
@@ -18,39 +14,19 @@
18
14
 
19
15
 
20
16
 
21
- from asyncio import Queue
22
-
23
-
24
-
25
- # タスクを先入先出処理するためのキュー 
26
-
27
- que = Queue()
28
-
29
-
30
-
31
17
  # タスク処理屋
32
18
 
33
19
  executor = ThreadPoolExecutor(max_workers=1, thread_name_prefix="thread")
34
20
 
35
21
 
36
22
 
37
- # 実行を止めるためのフラグ
23
+ # 処理を止めるためのフラグ
38
24
 
39
25
  working = {'state':True}
40
26
 
41
27
 
42
28
 
43
- # 処理
44
29
 
45
- async def process():
46
-
47
- while working['state']:
48
-
49
- board = await que.get()
50
-
51
- logger.info(f"[TASKID:{board.get('id')}] 処理を開始します。")
52
-
53
- executor.submit(event, board)
54
30
 
55
31
 
56
32
 
@@ -70,7 +46,7 @@
70
46
 
71
47
  logger.info(f"[TASKID:{board.get('id')}] 受信しました。")
72
48
 
73
- await que.put(board)
49
+ executor.submit(event, board)
74
50
 
75
51
  logger.info(f"[TASKID:{board.get('id')}] タスクをキューに投入しました。")
76
52
 
@@ -98,7 +74,7 @@
98
74
 
99
75
  loop.create_task(stream())
100
76
 
101
- loop.create_task(process())
77
+
102
78
 
103
79
  try:
104
80
 

1

修正

2020/12/30 03:24

投稿

退会済みユーザー
test CHANGED
@@ -68,6 +68,8 @@
68
68
 
69
69
  board = json.loads(response)
70
70
 
71
+ logger.info(f"[TASKID:{board.get('id')}] 受信しました。")
72
+
71
73
  await que.put(board)
72
74
 
73
75
  logger.info(f"[TASKID:{board.get('id')}] タスクをキューに投入しました。")