回答編集履歴
2
クラス修正
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
詳細
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)を参照してください
|