Ruby非阻塞定时,如何实现setTimeout般长尾疑问?
- 内容介绍
- 文章标签
- 相关推荐
本文共计252个文字,预计阅读时间需要2分钟。
我需要在初始化后几分钟内更新对象的某些属性。我尝试在函数内部使用`sleep`,但它延迟了所有事件的执行:
pythonactive=Truedef deactivate(): sleep(120) print('deactivate') active=False
deactivate()print(active)我希望会发生的变化是...
我需要在初始化后几分钟更改类的属性.我试图在函数内部使用sleep,但它延迟了所有事情的执行:active = true def deactivate sleep 120 puts 'deactivate' active = false end deactivate puts active
我希望会发生的事情是真的会先退出然后两分钟后停用会记录.但是,发生的情况是停用,然后在两分钟后错误注销.
在JavaScript中我会做类似的事情:
var active = true; setTimeout(function(){ console.log('deactivate'); active = false; },120000); console.log(active); 对于此任务看起来有点过分,但您可以使用 delayed_job异步运行未来时间的任务.
def deactivate puts 'deactivate' active = false end active = true handle_asynchronously :deactivate, :run_at => Proc.new { 2.minutes.from_now }
本文共计252个文字,预计阅读时间需要2分钟。
我需要在初始化后几分钟内更新对象的某些属性。我尝试在函数内部使用`sleep`,但它延迟了所有事件的执行:
pythonactive=Truedef deactivate(): sleep(120) print('deactivate') active=False
deactivate()print(active)我希望会发生的变化是...
我需要在初始化后几分钟更改类的属性.我试图在函数内部使用sleep,但它延迟了所有事情的执行:active = true def deactivate sleep 120 puts 'deactivate' active = false end deactivate puts active
我希望会发生的事情是真的会先退出然后两分钟后停用会记录.但是,发生的情况是停用,然后在两分钟后错误注销.
在JavaScript中我会做类似的事情:
var active = true; setTimeout(function(){ console.log('deactivate'); active = false; },120000); console.log(active); 对于此任务看起来有点过分,但您可以使用 delayed_job异步运行未来时间的任务.
def deactivate puts 'deactivate' active = false end active = true handle_asynchronously :deactivate, :run_at => Proc.new { 2.minutes.from_now }

