我正在使用 Python 和 PyCharm,我试图使用 asyncio 卸载数据库写入,但在 IDE 警告方面遇到了麻烦。在我的 main.py 中,我以这种方式启动任务db_logging_monitoring_task =
我正在使用 Python 和 PyCharm,我试图卸载数据库写入, asyncio
但遇到了 IDE 警告问题
在我的 main.py 中,我以这种方式启动任务
db_logging_monitoring_task = asyncio.create_task(start_logging_jobs_sniffer())
tasks.append(db_logging_monitoring_task)
await gather(*tasks)
异步函数内部的 while 循环在 start_logging_jobs_sniffer
哪里
# Waits on jobs from a jobs_queue
async def start_logging_jobs_sniffer(self):
while True:
try:
job = await self.logging_jobs_queue.get()
# Adds jobs to a jobs_queue
async def make_logging_job(self, params):
job = self.LoggingJob(params)
await self.logging_jobs_queue.put(job)
类似地,在 main.py 中,我有另一个后台监控任务,该任务以 5 秒为间隔进行轮询,然后记录轮询结果
async def poll(self, interval: int):
if self.is_config_applied:
while True:
# ...
asyncio.create_task(make_logging_job(
params={
**self.polling_results
},
))
但 pycharm 向我发出警告
Coroutine 'create_task' is not awaited
我特别希望 make_logging_job
任务能够与其他任务并行工作,这就是我不使用的原因 await
,而且这似乎按预期工作。
如果我在出现警告的情况下运行程序,则它们 make_logging_job
似乎是并行的,并且不会阻止任何内容
我完全不明白为什么 PyCharm 会发出未等待的警告 create_task
,还有其他更好的方法来完成任务吗?
将任务保存到变量可以抑制错误,并且似乎通过在后台运行来发挥作用
test = asyncio.create_task(make_logging_job(
params={
**self.polling_results
},
))
但我不知道这有什么用,我认为将任务保存到变量不会等待协程
我正在使用树莓派开发一个信息亭演示幻灯片程序,幻灯片在计算机显示器上运行良好,但当我在电视上尝试该程序时,它会在大约之后重置为第一个视频......
我正在使用 Raspberry Pi 开发一个信息亭演示幻灯片程序,幻灯片在计算机显示器上可以正常播放,但当我在电视上尝试该程序时,它会在大约 65 秒后重置为第一个视频。我们有多台 Raspberry Pi,但都存在同样的问题。刷新率和分辨率设置为 1920 x 1080 和 60 赫兹。
演示的总时长应为 3 分钟左右,但它总是在 65 秒时停止,只有在 Chromium 处于信息亭模式时才会在电视上显示。有一个程序在启动时运行,以信息亭模式启动 Chromium,设置正确的显示分辨率和刷新率,并通过 api 调用检索演示的 URL。
如果您有任何建议,我将不胜感激!
我尝试了多种 Chromium 设置,在浏览器中正常播放播放列表 URL,效果很好。我在没有使用 kiosk 模式的情况下运行它,结果与使用 kiosk 模式时一样,页面刷新。