可以在 php 中由用户设置会话超时吗?
示例:2 个用户在我的站点中注册。我希望每个用户都可以设置自己的会话超时。
场景:
用户将一个小文件或大约 100 kB 上传到可能有 1000 个工作单元的 ASP.NET 4.0 应用程序。然后服务器开始处理工作单元,一次一个。由于从外部服务请求信息,每个单元需要几秒钟才能完成。仅当所有单元都使用事务成功完成时,结果才会保存到数据库中。完成后,用户可以获得已完成内容的列表。
问题是用户没有得到确认,我认为他的浏览器因为超时而放弃了。
未来的文件预计会大几百倍,从而增加问题。
我想防止这个超时。
以下是我的一些想法:
我如何实现这最后一步,显示进度信息并防止浏览器超时?
欢迎其他建议。
谢谢,
我正在编写一个 bash 脚本,它使用 expect 登录到一堆 Cisco ASA(它们不支持证书登录,因此使用 expect),对配置进行更改,然后注销。
如果无法登录,我希望脚本移至下一个 ASA。
这是脚本:
#!/bin/bash
# Scriptname: set-mtu
for asa in $(cat asa-list-temp)
do
/usr/bin/expect << EndExpect
spawn ssh admin_15@$asa
expect "assword:"
send "pa$$w0rd\r"
expect ">"
send "do something\r"
expect ">"
send "exit\r"
EndExpect
done
Run Code Online (Sandbox Code Playgroud)
我想我可以设置超时,expect "assword:"但我不知道如何让它关闭生成的 ssh 会话,然后移动到 for 列表中的下一个 ASA。
我使用 php 通过包装函数通过 ssh 执行 scp 命令。移动是在本地和远程服务器之间进行的。
我大致知道脚本应该执行多长时间,如果它花费太长时间(由于目标服务器陷入困境或其他网络问题),我想终止 scp 进程。当前发生这种情况时,scp 进程将完全锁定,直到重新启动目标服务器或从命令行手动终止 scp 进程。
我可以将某种超时传递给 shell_exec() 以退出正在执行的工作并继续执行脚本吗?
我不太确定这个问题的机制,但我试图将单个 setTimeout 设置为一个变量 ID,我可以使用 clearTimeout 轻松取消该 ID。但是,如果 setTimeout 在 clearTimeout 之前被触发两次,事情就会变得古怪。
示例:http : //www.w3schools.com/js/tryit.asp?filename=tryjs_settimeout2
单击“Try It”两次,然后单击“Stop the Alert”两次,设置超时功能仍然被调用。同样,我不确定为什么 Try It 会触发该函数两次,因为该事件已保存到一个正在被覆盖的变量中。
知道这里发生了什么吗?
大多数 toastr 演示仅限客户端。
如果我得到这个 json 数据的服务器推送
[
{"msg": "Mortgage bill paid", "t": "i"}
{"msg": "Account Balance below $3000", "t": "i"}
{"msg": "Received Car payment request", "t": "w"}
]
Run Code Online (Sandbox Code Playgroud)
我将如何使用 toastr 阅读项目并发布 1 和 2 的“信息”,3 的“警告”,右下角可以。我想在吐司之间延迟 2000 次,这样吐司就不会同时到来。
你能指出我的例子,显示类似的东西。toastr 可以做到这一点。从某种意义上说,定时消息传递。
我怎么知道“可执行文件”是否真的超时了?超时 1 ./可执行文件
我需要一个条件来检查 if 语句。
如何在 QML 中超时 XMLHttpRequest?我有以下代码,但不会超时。好像没有实现超时功能!?有没有其他方法可以实现超时?
var http = new XMLHttpRequest();
http.open("POST", "http://localhost/test.xml", true);
http.setRequestHeader('Content-type', 'application/json; charset=utf-8')
http.timeout = 4000;
http.ontimeout = function () {
console.log("timed out")
}
http.onreadystatechange = function() {
if (http.readyState === XMLHttpRequest.DONE) {
// Do something
}
}
http.send(JSON.stringify(data));
Run Code Online (Sandbox Code Playgroud)
编辑: 代码不在 qml 中,而是在 js 文件中。它不会进入 qml 文件,因为它是模型 (MVC) 的一部分。
在我的测试中,有时我会超时,这对于在超时之前查看未完成的承诺在什么地方非常有用,这样我才能知道哪些承诺最有可能处于“始终处于等待状态”。
有没有办法做到这一点 ?
这是一个示例代码:
Promise.resolve().then(function firstFunction() {
console.log(1);
return 1;
}).then(function () {
return new Promise(function secondFunction(resolve, reject) {
// NEVER RESOLVING PROMISE
console.log(2);
});
}).then(function thirdFunction() {
// function that will never be called
console.log(3);
})
setTimeout(function timeoutTest() {
const pendingPromises = [];// ??????????? how do I get the pendingPromises
console.log(pendingPromises);
process.exit();
}, 5000);
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我想获得pendingPromises函数的名称和promise的stacktrace secondFunction,因为它是永远无法解决的。
我有一些与在Python中设置函数的最大运行时间相关的问题.实际上,我想pdfminer用来将.pdf文件转换为.txt.
问题是,很多时候,某些文件无法解码并且需要很长时间.所以我想设置threading.Timer()为将每个文件的转换时间限制为5秒.另外,我在windows下运行,所以我不能使用这个signal模块.
我成功运行了转换代码pdfminer.convert_pdf_to_txt()(在我的代码中是" c"),但我不确定以下代码中是否threading.Timer()有效.(我认为这不会限制每次处理的时间)
总之,我想:
将pdf转换为txt
每次转换的时间限制为5秒,如果超时,则抛出异常并保存空文件
将所有txt文件保存在同一文件夹下
如果有任何异常/错误,仍然保存文件但内容为空.
这是当前的代码:
import converter as c
import os
import timeit
import time
import threading
import thread
yourpath = 'D:/hh/'
def iftimesout():
print("no")
with open("D:/f/"+g+"&"+t+"&"+name+".txt", mode="w") as newfile:
newfile.write("")
for root, dirs, files in os.walk(yourpath, topdown=False):
for name in files:
try:
timer = threading.Timer(5.0,iftimesout)
timer.start()
t=os.path.split(os.path.dirname(os.path.join(root, name)))[1]
a=str(os.path.split(os.path.dirname(os.path.join(root, name)))[0])
g=str(a.split("\\")[1])
with open("D:/f/"+g+"&"+t+"&"+name+".txt", mode="w") as newfile:
newfile.write(c.convert_pdf_to_txt(os.path.join(root, name)))
print("yes") …Run Code Online (Sandbox Code Playgroud)