【发布时间】:2021-05-31 16:40:46
【问题描述】:
我有一个名为wednesday 的齿轮,它从images 文件夹中打印特定图像,顾名思义,每周三。然而,出于测试目的,我让循环每 30 秒运行一次,并且我已经让它在今天(星期一)而不是星期三运行。我已经尝试在我的计算机上本地运行此代码,并且它没有问题。但是,在部署到 Heroku 之后,循环根本不起作用。请记住,我还有另一个 cog 也有 tasks.loop,它每隔几秒就会改变我的机器人的状态。然而,这个齿轮在 Heroku 上没有任何问题。正如我之前所说,这个 wednesday cog 在我的机器上本地工作,这意味着我正在为我的机器人正确添加和加载 cog,并执行代码运行所需的其他操作。那么,为什么我的代码不能在 Heroku 上运行?
import discord, datetime
from discord.ext import commands, tasks
import json
with open('config.json') as f:
config = json.load(f)
class wednesday(commands.Cog):
def __init__(self, bot):
self.bot = bot
@tasks.loop(seconds=30)
async def time_checker(self):
self.time = datetime.datetime.now
if self.time().hour == 19:
if datetime.datetime.today().weekday() == 0: # 0 because I'm testing today which is a Monday
self.channel = await self.bot.fetch_channel(config['id'])
await self.channel.send(file=discord.File('images/wednesday_pic.png'))
@commands.Cog.listener()
async def on_ready(self):
await self.bot.wait_until_ready()
self.time_checker.start()
def setup(bot):
bot.add_cog(wednesday(bot))
我不确定为什么会这样:我认为这可能与循环有关。我在images 文件夹中有其他图像,它们可以很好地用于我拥有的其他命令,因为当我调用命令时机器人会发送它们。任何帮助将不胜感激。
【问题讨论】:
-
请详细说明您的问题,而不是仅仅说“这不起作用”。提供完整的追溯或错误报告,否则我们将无法提供帮助。
-
嗯,就是这样:没有错误。
-
打开图片有用吗?在heroku
-
图像以及所有其他文件都是从我的 GitHub 存储库部署的,因为我更改了 Heroku 上的设置,每次推送到我的存储库时都会重新部署。所以,如果我检查我的 git 存储库,我可以看到我的图像。
-
尝试打开文件或打印调试,你需要弄清楚代码哪里出错了,你的命令没有被执行,或者你的错误处理程序吃掉了错误或者图像没有加载.
标签: heroku discord discord.py bots