回答編集履歴

2

クラス修正

2019/07/01 06:05

投稿

退会済みユーザー
test CHANGED
@@ -14,15 +14,17 @@
14
14
 
15
15
  ```python
16
16
 
17
- async def timer():
17
+ async def timer(message):
18
18
 
19
19
  待機時間 = 指定の時間 - 現在時刻
20
20
 
21
21
  await asyncio.sleep(待機時間)
22
22
 
23
+ await message.channel.send("Test1")
24
+
23
25
  while True:
24
26
 
25
- message.channel.send("Test")
27
+ await message.channel.send("Test2")
26
28
 
27
29
  await asyncio.sleep(一定の周期)
28
30
 
@@ -36,7 +38,9 @@
36
38
 
37
39
  ```Python
38
40
 
41
+ if message.content.startswith("test"):
42
+
39
- client.loop.create_task(timer())
43
+ client.loop.create_task(timer(message))
40
44
 
41
45
  ```
42
46
 

1

詳細

2019/07/01 06:05

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,4 @@
1
- Pythonではasyncioというライブラリを使うことによって非同期処理を行うことができます
1
+ Pythonではasyncioというライブラリを使うことによって非同期処理(例えば、これで待機する処理が行われていも、他の処理がそれ待機するなどの影響がない)を行うことができます
2
2
 
3
3
  wanwannyaan様の作成したい処理を作る場合、具体的には以下のような処理の流れになります
4
4
 
@@ -31,3 +31,15 @@
31
31
 
32
32
 
33
33
  直打ちで見づらくてすみません
34
+
35
+ また、discord.py(rewrite)はライブラリ側で指定されている(クラス名.run)にて既に非同期処理が実行されているため、
36
+
37
+ ```Python
38
+
39
+ client.loop.create_task(timer())
40
+
41
+ ```
42
+
43
+ のようにタスクを作成することができます
44
+
45
+ 詳しくは、asyncioの[リファレンス](https://docs.python.org/ja/3/library/asyncio.html)を参照してください