yokonsan / midjourney-api

midjourney in discord api.
777 stars 176 forks source link

回调地址接收不到返回信息和触发不了机器人的问题 #47

Closed zhylio closed 1 year ago

zhylio commented 1 year ago

问题简述

开始正常的跑着,然后不知道是手动在频道那里发送命令,还是因为测试的时候发送了禁用词,看到在频道那里有提示,然后再跑一段时间,回调地址就没有接收到消息了,此时/v1/api/trigger/imagine是有返回tid的,但是一直没触发机器人绘画任务。 image image image

复现方式

环境信息

额外信息

No response

一点点的自我检查

yokonsan commented 1 year ago

通过日志看出,是并发队列满了但是没有释放导致的。需要正确配置:

# 绘画任务并发数
CONCUR_SIZE=3
# 任务等待队列数
WAIT_SIZE=10
# 监听 midjourney bot 处理完任务后,回调 API 服务清除队列。这个地址需要是server的 /v1/api/trigger/queue/release 地址
QUEUE_RELEASE_API=http://127.0.0.1:8062/v1/api/trigger/queue/release
yokonsan commented 1 year ago

我将在这周做一次调整,可选是否启用队列开关

zhylio commented 1 year ago

这个是有配置的喔,我是昨天才拉取此项目的最新版本的,然后直接修改.env.template来配置的,里面是有默认监听地址那些的 image

yokonsan commented 1 year ago

那你看下是不是有三个绘画任务在同时进行,有一个任务结束后,等待队列里的任务会自行触发

zhylio commented 1 year ago

这个自行触发是发现有的,能发现回调地址利用tid接收信息,从触发绘画任务之后等了一段时间才接收到对应的tid的信息。但是后面等了很久都没有动静,discord频道里也没有绘画任务。然后重启程序之后又可以了

yokonsan commented 1 year ago

我的预想是根据自己midjourney账户,支持的并发数去配置

解决方法是把这两个值配大一点,然后确保有回调 /release

zhylio commented 1 year ago

那很有可能就是禁用词对应的任务一直没清出队列导致新的触发任务一直是排队状态了

yokonsan commented 1 year ago

理论上不会的,出现禁用词我又做处理的