gpt4 book ai didi

python - 实现延迟的 Slack 斜线响应

转载 作者:行者123 更新时间:2023-12-01 03:39:17 27 4
gpt4 key购买 nike

我想实现必须处理 fucntion pipeline 的 slacklash 命令,该命令大约需要 30 秒来处理。现在从 Slack斜线命令只允许 3 秒响应,如何实现这一点。我提到this但不知道如何实现。

请坚持住。我是第一次这样做。这是我尝试过的。我知道如何在 3 秒内响应 ok status,但我不明白如何再次调用 pipeline

import requests
import json
from bottle import route, run, request
from S3_download import s3_download
from index import main_func

@route('/action')
def action():
pipeline()
return "ok"

def pipeline():
s3_download()
p = main_func()
print (p)

if __name__ == "__main__":
run(host='0.0.0.0', port=8082, debug=True)

我遇到了this文章。使用 AWS lambda 是唯一的解决方案吗?我们不能完全用 python 来做这件事吗?

最佳答案

类似这样的事情:

from boto import sqs
@route('/action', method='POST')
def action():
#retrieving all the required request example
params = request.forms.get('response_url')

sqs_queue = get_sqs_connection(queue_name)
message_object = sqs.message.Message()
message_object.set_body(params)
mail_queue.write(message_object)
return "request under process"

您可以有另一个进程来处理队列并调用长时间运行的函数:

sqs_queue = get_sqs_connection(queue_name)
for sqs_msg in sqs_queue.get_messages(10, wait_time_seconds=5):
processed_msg = json.loads(sqs_msg.get_body())
response = pipeline(processed_msg)
if response:
sqs_queue.delete_message(sqs_msg)

您可以在 diff 独立 python 文件中作为守护进程或 cron 运行第二个进程。

我用过 sqs Amazon Queue在这里,但有不同的选项可用。

关于python - 实现延迟的 Slack 斜线响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39917272/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com