

Discord.pyでコマンドが実行された場合にmultiprocessingを利用し、ブロッキングされないようにしてタイマーを実行したいと思っています。  
しかし実際に動作させようとすると正しく動作しません。（メッセージがコンソールに表示されず、反応もしない。）  
解決法を知っている方がおりましたらご教授いただければと思います。  
ファイルは以下の通りです。

main.py

[code]

    import discord
    from discord.ext import commands
    import multiprocessing
    bot = commands.Bot(command_prefix="!",owner_id=ownerid)
    bot.load_extension("subs")
    @bot.command()
    async def reload(ctx):
        if (ctx.author.id==bot.owner_id):
            print("reload")
            bot.reload_extension("subs")
        else:
            embed = discord.Embed(title="エラー！",description="権限がありません",color=discord.Colour.red())
            await ctx.send(embed=embed)
        
    bot.run('TOKEN')
    
[/code]

subs.py

[code]

    import discord
    from discord.ext import commands
    import multiprocessing
    import time
    def thdtms():
        print("start")
        time.sleep(300)
        print("timer done")
        
    class Greetings(commands.Cog):
        def __init__(self, bot):
            self.bot = bot
            self._last_member = None
            
        @commands.Cog.listener()
        async def on_ready(self):
            print('Ready!')
            print('Logged in as ---->', self.bot.user)
            print('ID:', self.bot.user.id)
    
        @commands.command()
        async def thdtm(self,ctx):
         if ctx.author.bot:
            return
         multi = multiprocessing.Process(target=thdtms)
         multi.start()
         
    def setup(bot):
        return bot.add_cog(Greetings(bot))
    
[/code]


CC BY-SA 4.0
2021-08-07T13:44:40.373
80657
2021-08-07T13:44:40.373
47625
question
python python-multiprocessing
Discord.pyでmultiprocessingを使った時、正常に動作しない。