- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
3 秒。因此,这导致了“operation_timeout”的松弛-6ren">
我在 python 脚本下运行,它最终运行 shell 脚本,它为我提供了 k8s 命名空间中运行版本的列表。得到结果,但需要时间> 3 秒。因此,这导致了“operation_timeout”的松弛。我是 python 的新手,已经阅读了有关延迟的各种文档,但这并没有帮助,因为这些文档非常复杂。
from subprocess import Popen, PIPE
from subprocess import check_output
from flask import Flask
def get_shell_script_output_using_communicate():
session = subprocess.Popen(['./version.sh'], stdout=PIPE, stderr=PIPE)
stdout, stderr = session.communicate()
if stderr:
raise Exception("Error "+str(stderr))
return stdout.decode('utf-8')
def get_shell_script_output_using_check_output():
stdout = check_output(['./version.sh']).decode('utf-8')
return stdout
app = Flask(__name__)
@app.route('/test',methods=['POST'])
def home():
return '`Version List` ```'+get_shell_script_output_using_check_output()+'```'
app.run(host='0.0.0.0', port=5002, debug=True)
最佳答案
无法将默认超时从 Slack 增加到斜线命令。总是3秒。但最多可以发送 30 分钟的延迟响应。
为此,您需要先在 3 秒内响应以通过发回 HTTP 200 OK 来确认初始请求。由于这需要您完成当前请求并终止主脚本,因此您需要并行运行延迟响应函数。这可以在进程、线程中,通过调用 celery 任务或任何其他方式允许您生成并行运行的 python 函数。
然后并行函数可以通过将消息发送到 response_url
中提供的 URL 来响应 Slack。来自 Slack 请求。
这是一个使用线程的示例实现:
import threading
from time import sleep
from flask import Flask, json, request
import requests
app = Flask(__name__) #create the Flask app
@app.route('/slash', methods=['POST'])
def slash_response():
"""endpoint for receiving all slash command requests from Slack"""
# get the full request from Slack
slack_request = request.form
# starting a new thread for doing the actual processing
x = threading.Thread(
target=some_processing,
args=(slack_request,)
)
x.start()
## respond to Slack with quick message
# and end the main thread for this request
return "Processing information.... please wait"
def some_processing(slack_request):
"""function for doing the actual work in a thread"""
# lets simulate heavy processing by waiting 7 seconds
sleep(7)
# response to Slack after processing is finished
response_url = slack_request["response_url"]
message = {
"text": "We found a result!"
}
res = requests.post(response_url, json=message)
if __name__ == '__main__':
app.run(debug=True, port=8000) #run app in debug mode on port 8000
关于python - 从 python "operation_timeout"中的 slack slash 命令增加超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60666827/
我刚刚创建了一个新的 Slack 应用程序并向其中添加了一个机器人。 现在我有 2 个可用的 token : OAuth 访问 token (xoxp) 机器人用户 OAuth 访问 token (x
我正在构建与 Slack 和客户端的消息传递集成。我需要在用户登录客户端时在相应的对话上显示徽章,以向客户端显示它有多少条未读消息。 我知道 channels.history 方法有 unreads
我有一个 slack POST api 调用,我正在从我的应用程序中调用它:- slack_client.api_call("chat.postMessage", channel=channel, t
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 去年关闭。 Improve this
Slack 默认头像来自哪里?这是他们自己的服务还是第三方服务? 在任何一种情况下,其他人是否有可能使用头像创建服务/系统,例如通过 slack API? 最佳答案 我 asked Slack dir
我正在编写一个脚本,以我的身份发布自动消息。我很难找到我的用户 token 。我必须创建一个应用程序吗? 最佳答案 是的,您必须创建一个应用程序才能生成用户 token 。您可以从此处创建一个应用程序
我正在为一些自动通知创建一个 slackbot,并且我收到了一个请求,让通知占据整个 slack 窗口的宽度,这看起来更干净。我发现 block 似乎占据了一个指定的宽度,并且不会水平延伸超过该点。我
我想创建一个 Slack 命令 /command do-something-with-that-file,同时用户上传文件。 到目前为止,我的命令已收到,但负载中没有文件。这可能吗? 我还在作用域中添
我一直在使用 Slack 操作 API,但不知道如何使用 response_url 在原始消息的线程中发送回复。 chat.postMessage 选项实际上不起作用,因为它需要手动将机器人添加到 c
“Slack”可以将链接展开为视频,但有些服务可以,有些则不能。 Vimeo( https://vimeo.com/ ) 可以在 Slack 中将链接展开为视频。 TED( https://www.t
我想复制一个现有的 Slack 应用程序,只更改一些小的配置。 除了从头开始创建新的 slack 应用程序并重新配置它之外,还有更简单的方法吗? 最佳答案 或者,您可以使用App Manifest 功
On slack - 我可以使用以下文本语法直接从我的两者中标记用户: hello Francois 我想对群组执行同样的操作(不幸的是,我的应用程序只知道群组名称,不知道群组 ID)。是否有这样做
我们使用通信工具 Slack。它在我的左侧边栏中显示了我最近与之进行过直接消息对话的在线和离开用户。我想在列表中看到当前在线的每个人,我们 Slack 服务器上的所有在线用户。在聊天应用程序的侧边栏中
我正在尝试构建一个在首次安装到工作区时执行某些操作的应用程序,例如:Ping 每个团队成员。 我找不到在应用安装时触发的事件类型: https://api.slack.com/events 有什么办法
我有一个发送长消息的机器人。 当它发送多条消息时,用户图标通常会滚出屏幕,因为没有人在机器人的消息之间发送过消息。 这意味着发送消息的时间和发送者不太明显。 有没有办法强制 Slack 为每条消息显示
我不完全确定这是否适合 Stack Overflow... 只是一个简短的问题,希望很多人会觉得有用。 我看到您可以使用主题标签,但它们必须与现有 channel 相对应。我有一个与一个项目相关的 c
例如,我希望在我休息的日子里每天在特定 channel 中显示提醒。就像是: /remind #channel @me will be on PTO 1/1/2016 until 1/5/2016 然
我被一位同事添加到 Slack 工作区。我一定已经接受了移动应用程序上的某些内容,因为我可以访问那里的工作区。不知何故,桌面应用程序从未反射(reflect)过这种变化,也没有表现出知道工作空间的迹象
我是 Slack 的新手,刚刚创建了我的第一个 channel 。在设置 channel 时,我添加了一个目的,但是一旦创建,还有一个添加主题的地方。 channel 的目的和主题有什么区别?它们看起
线程将是 Slack 的一个非常好的特性,只是它们太窄了,我找不到任何方法来配置它们的宽度。 有谁知道如何扩展线程以使其占用所有屏幕空间(在 Slack 内)?放大不会改变窄度。它只会使字体更大。我想
我是一名优秀的程序员,十分优秀!