Lua中,如何控制时间的延迟
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lua中,如何控制时间的延迟相关的知识,希望对你有一定的参考价值。
比如,从1到十,每1秒输出一个值?
os库 调用时间函数 取秒local n,s,s0 = 0
while true do
s = os.date("%s", os.time());
if s0 ~= s then
n = n + 1;
print("this is the "..n.." seceod");
end;
if n == 10 then
break;
end;
end; 参考技术A 这个,好像标准库里还真没有。不过自己写个扩展库,或者用alien库也可以。 参考技术B 少一句 s0 = s;
如何调试在 IRB 控制台中的延迟作业任务中运行的代码?
【中文标题】如何调试在 IRB 控制台中的延迟作业任务中运行的代码?【英文标题】:How can I debug code running in a delayed_job task in the IRB console? 【发布时间】:2013-08-10 22:18:29 【问题描述】:我有一个使用delayed_job 运行的后台任务。
我可以看到它确实从日志记录语句中运行。与在前台运行相比,它似乎没有正确的结果,所以我想在 IRB 控制台中对其进行调试。
我正在运行后台任务
rake jobs:work
并且它不会触发调试器语句。
如何加载调试器?
【问题讨论】:
【参考方案1】:启动一个标准的 Rails 控制台
ruby script/console
并在这里启动一个worker,这将看到并触发调试器语句。
worker = Delayed::Worker.new
worker.start
【讨论】:
延迟::Worker.new.start bundle exec rails runner "Delayed::Worker.new.start" 这太棒了。一直以来,我都对使用延迟作业的控制台输出一无所知。谢谢!【参考方案2】:我使用 pry 作为我的控制台和远程调试器。 Pry website here,Pry rails gem here。在您的代码中,您添加 binding.pry 语句以使您的应用程序停止执行并打开控制台。 delay_job 的工作原理与您的 rails 应用程序相同。确保您在前台运行延迟作业,因此它仍然连接到终端。例如,使用以下命令启动延迟作业:
rake jobs:work
【讨论】:
实际上值得注意的是,如果您在运行队列之后添加了断点(binding.pry 指令),那么您必须首先停止并重新启动队列rake jobs:work 以便考虑断点以上是关于Lua中,如何控制时间的延迟的主要内容,如果未能解决你的问题,请参考以下文章