Python中的后台任务,检查是否已发送数据



我有一个问题要问这里的专家。我正在为我的Discord机器人创建后台任务,我让它按我的意愿工作,但我想实现一个功能,允许我忽略已经发送的数据。我使用的数据是通过请求请求的,因为它会随着时间的推移而变化。

这是我代码的一部分,它按预期工作,但我不知道如何添加一个部分来检查发送的消息,而不是重复它。我设置了1分钟的测试时间,看看它是否工作,这将在以后更改。

提前感谢

import discord
import requests
import asyncio
import json
from datetime import datetime, timezone
import math
from discord.ext import commands, tasks
from discord.ext.commands import Bot
import discord.utils
from itertools import cycle
client = discord.Client()
status = (['Scraping VATSIM Data','Anyone online?','What can I show you?', 'Check our social media for updates!'])
@client.event
async def on_ready():
change_status.start()
auto_online.start()
# await client.change_presence(activity=discord.Activity(type=discord.ActivityType.watching, name="VATSIM Data!"))
print('We have logged in as {0.user}'.format(client))
@tasks.loop(minutes=1)
async def auto_online():
# send request to vatsim data
t = requests.get('http://cluster.data.vatsim.net/vatsim-data.json').json()
xy = json.dumps(t)
s = json.loads(xy)
channel1 = client.get_channel(692681048798265347)
# Bookins Data Display
utc = datetime.now(timezone.utc)
# Command for displaying ATC online
online_exists = False
for item in s['clients']:
if item['callsign'] in atc:
online_exists = True
embed = discord.Embed(colour = discord.Colour.purple())
embed.set_author(name='VATAdria Online ATC')
embed.add_field(name='Controller',value=item['realname'],inline=False)
embed.add_field(name='Position', value=item['callsign'], inline=False)
embed.add_field(name='Frequency', value=item['frequency'], inline=False)
await channel1.send( embed=embed)```

经过一些研究,我发现了如何通过MySQL实现这一点。所以不再需要答案了。

最新更新