所以用我的代码,如果当前公会id与特定公会id相同,我想打印一条消息到控制台。bot应该检查数据库中列出的每台服务器。
这就是我的代码:
@tasks.loop(minutes=15.0)
async def topic():
print("topic start")
mydb = getConnection()
mycursor = mydb.cursor()
mycursor.execute(f"SELECT * FROM partner_list")
myresult = mycursor.fetchall()
for x in myresult:
try:
x1 = [x]
guild = bot.get_guild(int(x1[0][0]))
name = (str(x1[0][1]))
print("inside try catch")
print(guild.id)
print(ctx.guild.id) # <--- This doesn't work
if int(ctx.guild.id) == int(guild.id):
print("Trading Sucht")
#mydb.commit()
except:
pass
mycursor.close()
mydb.close()
错误是ctx.guild.id不起作用,因为他找不到“ctx”。有没有其他方法可以让bot从我的数据库中遍历每个guildid行,并检查当前的行id是否与数据库中的行id相同?
伙计,你在犯一个愚蠢的错误。
这里的ctx
是上下文。您的函数也应该有ctx
,以便有上下文并供您使用。
现在我修改您的代码,它是:
@tasks.loop(minutes=15.0)
async def topic(ctx):
print("topic start")
mydb = getConnection()
mycursor = mydb.cursor()
mycursor.execute(f"SELECT * FROM partner_list")
myresult = mycursor.fetchall()
for x in myresult:
try:
x1 = [x]
guild = bot.get_guild(int(x1[0][0]))
name = (str(x1[0][1]))
print("inside try catch")
print(guild.id)
print(ctx.guild.id)
if int(ctx.guild.id) == int(guild.id):
print("Trading Sucht")
#mydb.commit()
except:
pass
mycursor.close()
mydb.close()
这是你能解决的。如果您仍然得到这个错误,请随时询问任何问题。:)
谢谢!:d
问题内容: 如何从任务中获取任务的task_id值?这是我的代码: 这个想法是,当我创建任务的新实例时,我从任务对象中检索。然后,我使用任务ID来确定任务是否已完成。我 不想 按值跟踪任务,因为在任务完成后文件将被“清理”,并且可能存在也可能不存在。 在上面的示例中,我将如何获取值? 问题答案: 如果任务接受,Celery会设置一些默认关键字参数。(您可以使用** kwargs接受它们,也可以专门
cmf_get_current_admin_theme() 功能 获取当前后台模板 参数 无 返回 string
说明 在后台任务中,因为是运行在task进程,所以无法使用协程和协程客户端。如果你要操作数据库或Redis,一定要配置同步的连接池。 配置 项目配置文件中mainServer.configs.task_worker_num一定要配置为大于0,否则无法使用后台任务。 定义任务执行类 <?php namespace Test; use Imi\Task\TaskParam; use Imi\Task
cmf_get_current_theme() 功能 获取当前前台模板 参数 无 返回 string
我有一个 Java 程序在我的 Linux 服务器上运行,jar 已经以”
如果只是偶尔查询一次,可以通过chaipip或者ip138查询,这里chaipip更加权威一些。