【发布时间】:2021-03-23 02:14:03
【问题描述】:
所以,我正在 repl.it 上开发一个机器人,但我不明白为什么我的代码不起作用...
我有一个每 24 小时调用一次的循环异步函数:
@tasks.loop(hours=24)
async def send_plot():
await bot.wait_until_ready()
if str(datetime.now(tz).strftime('%Y-%m-%d')) not in db['Date']:
append_db('Date', str(datetime.now(tz).strftime('%Y-%m-%d')))
---------------------------------------------------------------------------- # starting here
print('...')
for key in db.keys():
append_db(key, db[key][len(db[key]) - 1])
---------------------------------------------------------------------------- # ending here
plotting()
message_channel = bot.get_channel(int(channel_id))
await message_channel.send(file=discord.File('plot.png'))
因此,由于未知原因,这两行之间没有任何工作。我试图自己弄清楚,但我厌倦了它,因为没有任何东西可以正常工作。这里发生了某种神奇的事情......
这里是 append_db 函数:
def append_db(key, value):
clone = db[key]
clone.append(value)
db[key] = clone
不知道为什么,但这是让我将信息保存到 repl.it 数据库的唯一方法。
【问题讨论】:
-
我不确定 Repl.it 是否真的应该用于像这样的长时间运行/计划的任务。如果这按您的预期工作,我会感到非常惊讶。
-
@esqew 不知道它是否适用于 OP 的代码,但我在 repl 上运行了几次-它在 C++ 中运行时间很长,并且所有时间任务都被 repl-终止它正好在
30 minutes运行之后。所以看起来 repl-it 可以运行任何任务半小时,至少在 C++ 中是这样。 -
@esqew 我创建了一个由 uptimerobot.com ping 的烧瓶应用程序。它使我的机器人在 repl.it 上保持活力。
标签: python asynchronous discord repl.it