Ruby Sidekiq & Resque 启动要占用一个 cli 好麻烦啊~ 能放后台吗?

ruohanc · 2012年06月20日 · 最后由 zhenning 回复于 2012年06月20日 · 5543 次阅读

我写了个小东西呗,然后用了 Sidekiq.

然后就觉得很麻烦啊~ Sidekiq 要专门起一个进程,占用一个 cli. 我的小东西也要起一个进程。也要占用一个 cli....

有办法搞的轻松一点吗...? 只用一个 cli, 或者完全放后台..

#1 楼 @hooopo 额..我错了...

比如在 Rails 里面用 resque 的话,要用一个新的 cli 运行 QUEUE=file_serve rake resque:work 吧.?

然后你还要开一个 Rails 吧 rails s

这不就两个 cli 了...

nohup rake rake resque:work > log/resque.log &

这样就可以再后台跑了。

#2 楼 @ruohanc foreman foreman foreman!

#4 楼 @hooopo 赞! #3 楼 @huacnlee 我是想要个 Rubinic 点的方式啦~

resque 有一个选项 BACKGROUND=yes

请问有这样一种 process queue 的 gem 吗?我页面上来一个请求到控制器,然后控制器能直接异步启动一个 process,处理完耗时任务,再自己乖乖的退出自己。这样的解决方案多简洁啊

我也在做这个,准备用 daemon 解决 ,不过我用的是 queue_class

#9 楼 @hooopo 我突然想到我用 system 方法来执行

#10 楼 @qichunren 。。。system 方法不带环境的 功能有限。 你这种需求有好多 gem 的。

#7 楼 @qichunren 啊..? 你说的不是这种队列吗?试试看 resque?

常用的有 foreman ,可以将一些服务整合到一个 cli 里

#12 楼 @ruohanc 我用过这个,它需要另外启动一个 rake 任务的

#13 楼 @weihuilee #4 楼 @hooopo

foreman 有点问题啊..运行之后的屏幕回显不及时。有好些信息都没有直接打出来 ( 按 之后关闭所有进程之后才会显示). 像是缓存着一样...

#3 楼 @huacnlee 我现在觉得这种方法不经济啊!就用 Rails + resque 说好了.. Rails 载入了所有资源之后,resque 又要另外单独载入一遍所有的资源,这不是太占内存了么....

@ruohanc 用这个的前提是你的资源要够,速度和空间的冲突

#7 楼 @qichunren delayed_job + hirefire. 也可用几年前的 run_later.

需要 登录 后方可回复, 如果你还没有账号请 注册新账号