这个不和谐的东西是我的新手。我刚刚做了一个discord.py机器人,它可以正常工作,但有时该机器人会不断重复命令消息。 我搜索了这个问题,发现可能是一遍又一遍地运行脚本(例如,在编辑或添加函数后保存并运行)。 因此,我想停止运行该进程,就像重新启动Windows一样,该bot处于脱机状态(如果在重新启动Windows之后运行脚本,则该bot会正常运行)。 请帮助
如果有人需要代码,我可以将其粘贴到这里。
PD:我使机器人完全像教程一样……
答案 0 :(得分:1)
结束机器人正在运行的整个脚本的一种方法是使用内置的 Python 函数 add_action( 'woocommerce_before_single_product', 'bbloomer_prev_next_product' );
function bbloomer_prev_next_product(){
echo '<div class="prev_next_buttons">';
// 'product_cat' will make sure to return next/prev from current category
next_post_link('<p style="float:left;">%link</p>', '← PREVIOUS', TRUE, ' ', 'product_cat');
previous_post_link('<p style="float:right;">%link</p>', 'NEXT →', TRUE,' ', 'product_cat');
echo '</div>';
}
和 exit()
,两者都做同样的事情。
quit()
通过输入 @bot.command()
@commands.is_owner()
async def shutdown(context):
exit()
是为了只有机器人的所有者才能使用此命令。要调用此命令,请在您的 Discord 服务器中输入 @commands.is_owner()
(将 /shutdown
替换为您的任何前缀)。
它引发了一堆错误,但总体上结束了程序,因此最终它可能不是最有效的方法,但它可以完成工作。
答案 1 :(得分:0)
此消息确实不是不特定于ordord.py的,并且适用于不确定运行的每个脚本。
您正在运行机器人的多个实例。如果在IDE环境中运行它,则应该在某处有一个停止按钮。如果您正在控制台中运行它,则关闭控制台窗口将关闭该机器人。
编辑:如果您按照标签所建议的那样在sublime3中运行,则每次您要关闭机器人时,请转到“工具”,然后单击“取消构建”(热键:CTRL + Break)。一旦您运行bot的另一个实例,就可以对当前脚本进行“升华”操作,以使用新的bot进行“解耦”,并且此方法不再起作用。然后,您必须手动浏览正在运行的进程(命令行或任务管理器)并搜索任何“ Python”进程。
通常,我建议您在命令行中运行脚本,因为您可以对其进行更多控制。
答案 2 :(得分:0)
但是,在使用该代码保存漫游器之后,您可能需要重新启动PC。
# in your model file
after_save :expire_model_all_cache
after_destroy :expire_model_all_cache
def expire_model_all_cache
Rails.cache.delete("your cache name")
end
我希望这对您有用,并且我能为您提供帮助。
答案 3 :(得分:0)
解决这个问题的简单方法是重新生成您的机器人令牌。这样做将关闭所有活动脚本。对于任何不熟悉 Discord API 的人,如果您收到“拒绝访问”这样的错误提示,此解决方案也应该对您有所帮助。