小编Pat*_*ick的帖子

铁路定期任务

我在rails应用程序上有一个ruby,我试图找到一种方法来每隔几秒运行一些代码.

我已经使用cron或类似cron的实现找到了很多信息和想法,但这些只是精确到一分钟,和/或需要外部工具.我想每15秒左右关闭一次任务,我希望它完全自包含在应用程序中(如果应用程序停止,任务停止,没有外部设置).

这用于缓存数据的后台生成.每隔几秒,任务将汇总一些数据,然后将其存储在缓存中,该缓存将被所有客户端请求使用.任务很慢,因此需要在后台运行而不是阻止客户端请求.

我对ruby很新,但是有一个强大的perl背景,我解决这个问题的方法就是创建一个间隔计时器和处理程序,它会分叉,运行代码,然后在完成后退出.
仅模拟客户端请求并让rails控制器自行分配可能更好.这样我可以通过点击它来启动任务(虽然任务将每隔几秒运行一次,我怀疑我将需要,但可能有将来使用).虽然让控制器调用周期性任务调度程序调用的任何方法(一旦我有一个),这将是微不足道的.

ruby asynchronous ruby-on-rails scheduled-tasks

13
推荐指数
2
解决办法
8117
查看次数

git:创建涂抹过滤器后重新签出文件

情况:我刚刚克隆了一个git repo,然后我为repo配置了涂抹过滤器.有.gitattributes分散各地指定,应该在这些文件在结账可以使用过滤器的回购协议文件.但是因为我在结帐(克隆)之后设置了过滤器,所以没有处理任何文件.

我怎么能告诉git通过repo,找到所有.gitattributes文件,并更新(重新检查,应用过滤器,等等)所有带有污迹过滤器的文件?

git

7
推荐指数
1
解决办法
2111
查看次数

Go示例不会运行

我正在尝试向一个包添加一个示例,并通过示例运行该示例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)

我的例子出了什么问题?

testing go

6
推荐指数
1
解决办法
6175
查看次数

如何使用tc和cgroup对数据包进行优先处理

我正在尝试对从特定进程组生成的数据包进行优先级排序,以便首先选择它们以从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)

linux networking kernel trafficshaping

5
推荐指数
1
解决办法
4639
查看次数

无法解救YAML.load异常

我正在尝试处理在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 yaml exception-handling exception

2
推荐指数
2
解决办法
3584
查看次数