DiscordPythonスクリプト-接続されたサーバーでの毎日の投稿のスケジュールに関する問題

ジョシュ

コンピューター:MacOS w / Python3.7およびDiscordパッケージがインストールされている

サーバー:Python3.6とDiscordパッケージがインストールされたCentOS6

コードが悪いか、問題を解決するために最適化できるのではないかと思います。

class MyClient(discord.Client):
    async def on_ready(self):
        print('Logged on as {0}!'.format(self.user))
        print(self.user.id)
        print('------')
        # loops through connected servers and assigns increments server count variable
        server_count = 0
        quote_count = 0
        for guild in client.guilds:
            server_count += 1
        print("The server count is {}".format(server_count))
        for quote in quotes:
            quote_count += 1
        print("There number of quotes available is: " + str(quote_count))
        print('------')
        while not client.is_closed():
            now = datetime.strftime(datetime.now(), '%H:%M')
            iter_count = 0
            print("current time is: " + now)
            if now == wakeup_time:  # enter for-loop at specific time
                for guild in client.guilds:
                    for channel in guild.channels:
                        if str(channel) == 'chat':
                            await channel.send('Good Morning/Afternoon/Good Night. Here is today\'s random quote:')
                            await channel.send('```' + str(random.choice(quotes)).strip('[]') + '```')
                            print("{} Server Greeted.").format(guild.name)
                            iter_count += 1
                            if iter_count == server_count:
                                await asyncio.sleep(7200)  # puts loop on hold for 1 hour
            else:
                await asyncio.sleep(10)

ローカルで行っていること:各discordサーバーの#chatチャネルに1回投稿してから、関数を2時間スリープさせます。ボットは4つの不和サーバーに接続されています。(これが私がやりたいことです)。

CentOS Linuxサーバーでの動作:サーバーの1つだけの#chatチャネルに5回投稿してから、関数を2時間スリープさせます。

質問:コードを最適化してサーバーをループし、チャットチャネルに1日1回投稿するためのより良い方法はありますか?

Konyer

個人的には、これにはバックグラウンドタスクを使用します。また、guild.channelsuseを使用する代わりにguild.text_channelsコードにいくつか変更を加えました。これがお役に立てば幸いです。

class MyClient(discord.Client):
    async def start_task(self):
        while not client.is_closed():
            now = datetime.strftime(datetime.now(), '%H:%M')
            iter_count = 0
            print("current time is: " + now)
            if now == wakeup_time:  # enter for-loop at specific time
                for guild in client.guilds:
                    for channel in guild.text_channels:
                        if channel.name == 'chat':
                            await channel.send('Good Morning/Afternoon/Good Night. Here is today\'s random quote:')
                            await channel.send('```' + str(random.choice(quotes)).strip('[]') + '```')
                            print("{} Server Greeted.").format(guild.name)
                            iter_count += 1
                            if iter_count == server_count:
                                await asyncio.sleep(7200)  # puts loop on hold for 1 hour
                            break
            else:
                await asyncio.sleep(10)

    async def on_ready(self):
        print('Logged on as {0}!'.format(self.user))
        print(self.user.id)
        print('------')
        # loops through connected servers and assigns increments server count variable
        quote_count = 0
        print("The server count is {}".format(len(client.guilds)))
        for quote in quotes:
            quote_count += 1
        print("There number of quotes available is: " + str(quote_count))
        client.loop.create_task(start_task())

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Google CloudStorageへの毎日のCloudSQLエクスポートをスケジュールするためのCloudFunctionのデプロイに関する問題

分類Dev

毎月1日の午前2時に実行されるPythonスクリプトのスケジュール

分類Dev

モジュールのインポートに関するスケジュールされたタスクの問題としてのPowershell、

分類Dev

Python3.7とスケジュールされたタスクに関するUnicodeの問題

分類Dev

ネストされた算術に関する問題WebサーバーでのMySQLクエリ

分類Dev

春のブートで問題のスケジュールされたタスクを修正する方法

分類Dev

Azure node.jsWebアプリから別のサーバーにリクエストを投稿します。リクエストの問題:接続EACCESエラー

分類Dev

Webサービスで毎日特定の時間にスケジュールされたプロセスを実行します

分類Dev

Ubuntu16.04でシェルスクリプトからインストールされたrubygemパッケージにアクセスする際の問題

分類Dev

Pythonスクリプトを毎日、特定の時間の間、X分ごとにスケジュールする

分類Dev

毎日のタスクエラーをスケジュールするPowershellスクリプト

分類Dev

クライアントソケットとサーバーソケットの接続に関する問題

分類Dev

postgreSQLに接続されたSpring Bootアプリケーションの「エンティティ/テーブルの関係」を修正する方法(POSTリクエストの問題)

分類Dev

異なるサーバー上のテーブル間でデータを比較するためのスクリプトの実行に関する問題

分類Dev

ステートレスセットに接続されたヘッドレスサービスのポートに関する問題

分類Dev

サービス中のtcp接続に関する問題

分類Dev

ローカルホストでのMYSQLへの接続に関する問題

分類Dev

作成されたRパッケージの構築とインストールに関する問題

分類Dev

bashスクリプトで非表示のSMBサーバーに接続する

分類Dev

複数のアプリサービスに公開された継続的なWebジョブは、cronスケジュールごとに実行されるのではなく、1日に1つのアプリサービスに対してのみ実行されます。

分類Dev

Xunit テスト ケースでの AppDomain の使用に関する問題 - ケーキ スクリプト

分類Dev

snakemakeRスクリプトのリストのループに関する問題

分類Dev

MySQLのスケジュールされたイベント-xとYの間で毎日実行するオプション?

分類Dev

スケジュールされたタスクを作成して、システムファイルの増分バックアップを毎日作成します

分類Dev

ASP.NET Core 3.1で、将来の特定の日時に、ホストされたサービスでバックグラウンドタスク(Cron Jobs)をスケジュールするにはどうすればよいですか?

分類Dev

IOSクライアント(ASP.NET WEB API 2で開発されたサーバー)のストリーミングビデオに関する問題

分類Dev

ローカル レジストリの https での Docker プッシュに関する問題 リソースへのアクセスが拒否されました

分類Dev

検証に関する Python のネストされたループの問題

分類Dev

ウェブサイトの動的にロードされたスケジュールを取得するためのphpスクリプト

Related 関連記事

  1. 1

    Google CloudStorageへの毎日のCloudSQLエクスポートをスケジュールするためのCloudFunctionのデプロイに関する問題

  2. 2

    毎月1日の午前2時に実行されるPythonスクリプトのスケジュール

  3. 3

    モジュールのインポートに関するスケジュールされたタスクの問題としてのPowershell、

  4. 4

    Python3.7とスケジュールされたタスクに関するUnicodeの問題

  5. 5

    ネストされた算術に関する問題WebサーバーでのMySQLクエリ

  6. 6

    春のブートで問題のスケジュールされたタスクを修正する方法

  7. 7

    Azure node.jsWebアプリから別のサーバーにリクエストを投稿します。リクエストの問題:接続EACCESエラー

  8. 8

    Webサービスで毎日特定の時間にスケジュールされたプロセスを実行します

  9. 9

    Ubuntu16.04でシェルスクリプトからインストールされたrubygemパッケージにアクセスする際の問題

  10. 10

    Pythonスクリプトを毎日、特定の時間の間、X分ごとにスケジュールする

  11. 11

    毎日のタスクエラーをスケジュールするPowershellスクリプト

  12. 12

    クライアントソケットとサーバーソケットの接続に関する問題

  13. 13

    postgreSQLに接続されたSpring Bootアプリケーションの「エンティティ/テーブルの関係」を修正する方法(POSTリクエストの問題)

  14. 14

    異なるサーバー上のテーブル間でデータを比較するためのスクリプトの実行に関する問題

  15. 15

    ステートレスセットに接続されたヘッドレスサービスのポートに関する問題

  16. 16

    サービス中のtcp接続に関する問題

  17. 17

    ローカルホストでのMYSQLへの接続に関する問題

  18. 18

    作成されたRパッケージの構築とインストールに関する問題

  19. 19

    bashスクリプトで非表示のSMBサーバーに接続する

  20. 20

    複数のアプリサービスに公開された継続的なWebジョブは、cronスケジュールごとに実行されるのではなく、1日に1つのアプリサービスに対してのみ実行されます。

  21. 21

    Xunit テスト ケースでの AppDomain の使用に関する問題 - ケーキ スクリプト

  22. 22

    snakemakeRスクリプトのリストのループに関する問題

  23. 23

    MySQLのスケジュールされたイベント-xとYの間で毎日実行するオプション?

  24. 24

    スケジュールされたタスクを作成して、システムファイルの増分バックアップを毎日作成します

  25. 25

    ASP.NET Core 3.1で、将来の特定の日時に、ホストされたサービスでバックグラウンドタスク(Cron Jobs)をスケジュールするにはどうすればよいですか?

  26. 26

    IOSクライアント(ASP.NET WEB API 2で開発されたサーバー)のストリーミングビデオに関する問題

  27. 27

    ローカル レジストリの https での Docker プッシュに関する問題 リソースへのアクセスが拒否されました

  28. 28

    検証に関する Python のネストされたループの問題

  29. 29

    ウェブサイトの動的にロードされたスケジュールを取得するためのphpスクリプト

ホットタグ

アーカイブ