gpt4 book ai didi

javascript - Ruby 中的非阻塞定时事件,如 JavaScript setTimeout

转载 作者:数据小太阳 更新时间:2023-10-29 07:47:42 45 4
gpt4 key购买 nike

我需要在类初始化几分钟后更改它的属性。我试图在一个函数中使用 sleep 但它延迟了所有的执行:

active = true

def deactivate
sleep 120
puts 'deactivate'
active = false
end

deactivate
puts active

我希望发生的事情是 true 会先注销,然后两分钟后 deactivate 会登录。但是,发生的情况是 deactivate,然后 false 在两分钟后注销。

在 JavaScript 中我会做类似的事情:

var active = true;
setTimeout(function(){
console.log('deactivate');
active = false;
},120000);
console.log(active);

最佳答案

使用@ihaztehcodez 的线程建议,我想出了我正在寻找的简单解决方案:

Thread.new do
sleep 120
puts 'deactivate'
active = false
end

在这种情况下,他关于持久性的警告并不让我担心,因为我将它用于非关键通知。如果执行很关键,那么将某些内容存储在数据库中(如@spickermann 所说)或使用像@k-m-rakibul-islam 建议的库将是更好的解决方案。

关于javascript - Ruby 中的非阻塞定时事件,如 JavaScript setTimeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32918873/

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