我在rails应用程序上有一个ruby,我试图找到一种方法来每隔几秒运行一些代码.
我已经使用cron或类似cron的实现找到了很多信息和想法,但这些只是精确到一分钟,和/或需要外部工具.我想每15秒左右关闭一次任务,我希望它完全自包含在应用程序中(如果应用程序停止,任务停止,没有外部设置).
这用于缓存数据的后台生成.每隔几秒,任务将汇总一些数据,然后将其存储在缓存中,该缓存将被所有客户端请求使用.任务很慢,因此需要在后台运行而不是阻止客户端请求.
我对ruby很新,但是有一个强大的perl背景,我解决这个问题的方法就是创建一个间隔计时器和处理程序,它会分叉,运行代码,然后在完成后退出.
仅模拟客户端请求并让rails控制器自行分配可能更好.这样我可以通过点击它来启动任务(虽然任务将每隔几秒运行一次,我怀疑我将需要,但可能有将来使用).虽然让控制器调用周期性任务调度程序调用的任何方法(一旦我有一个),这将是微不足道的.
情况:我刚刚克隆了一个git repo,然后我为repo配置了涂抹过滤器.有.gitattributes分散各地指定,应该在这些文件在结账可以使用过滤器的回购协议文件.但是因为我在结帐(克隆)之后设置了过滤器,所以没有处理任何文件.
我怎么能告诉git通过repo,找到所有.gitattributes文件,并更新(重新检查,应用过滤器,等等)所有带有污迹过滤器的文件?
我正在尝试向一个包添加一个示例,并通过示例运行该示例go test,但该示例永远不会运行.
例如,请参阅此要点:https://gist.github.com/85469ecc65bb5bb85857
要点有example_test.go:
package cow_test
import (
cow "gist.github.com/85469ecc65bb5bb85857"
)
func Example() {
cow.Poke()
}
Run Code Online (Sandbox Code Playgroud)
然而,当我运行这个:
# go test -v example_test.go
testing: warning: no tests to run
PASS
ok command-line-arguments 0.002s
Run Code Online (Sandbox Code Playgroud)
但是stdlib的其他软件包工作得很好:
# cd /usr/lib/go/src/errors
# go test -v example_test.go
=== RUN: Example
--- PASS: Example (0.00s)
PASS
ok command-line-arguments 0.002s
Run Code Online (Sandbox Code Playgroud)
我的例子出了什么问题?
我正在尝试对从特定进程组生成的数据包进行优先级排序,以便首先选择它们以从PC传输出去。我的目标是通过使用cgroups和tc来做到这一点,但似乎不起作用。
首先,我在ubuntu上设置了cgroup,如下所示:
modprobe cls_cgroup # load this module to get net_cls
mkdir /sys/fs/cgroup/net_cls # mount point
mount -t cgroup net_cls -onet_cls /sys/fs/cgroup/net_cls/
mkdir /sys/fs/cgroup/net_cls/foo # new cgroup
echo 0x00010001 > /sys/fs/cgroup/foo/net_cls.classid # echo in a class id
echo 2348 > /sys/fs/cgroup/net_cls/foo/tasks # echo in pid of firefox
tc qdisc add dev eth0 root handle 1: pri
tc qdisc add dev eth0 parent 1:1 handle 10: sfq
tc qdisc add dev eth0 parent 1:2 handle 20: sfq
tc qdisc add dev …Run Code Online (Sandbox Code Playgroud) 我正在尝试处理在Ruby中加载无效的YAML数据,但似乎无法挽救心理引发的异常.
这是一些示例代码,用于演示我遇到的问题:
require 'yaml'
begin
YAML.load('&*%^*')
rescue
puts "Rescued"
end
Run Code Online (Sandbox Code Playgroud)
例外情况:
# ruby test.rb
/usr/lib64/ruby/1.9.1/psych.rb:203:in `parse': (<unknown>): did not find expected alphabetic or numeric character while scanning an anchor at line 1 column 1 (Psych::SyntaxError)
from /usr/lib64/ruby/1.9.1/psych.rb:203:in `parse_stream'
from /usr/lib64/ruby/1.9.1/psych.rb:151:in `parse'
from /usr/lib64/ruby/1.9.1/psych.rb:127:in `load'
from test.rb:3:in `<main>'
Run Code Online (Sandbox Code Playgroud) ruby ×2
asynchronous ×1
exception ×1
git ×1
go ×1
kernel ×1
linux ×1
networking ×1
testing ×1
yaml ×1