RoR: EasyJobs

学Rails时间不长,但是感觉已经有些成熟了,这次是第一次用最新的Rails 4.0做,和Rails 3.2确实有些不同。这次做的是一个用来方便我执行服务器上命令的软件。另外因为有些同事不熟悉通过终端SSH连接服务器执行命令,通过一个网页界面显得容易得多。

以前如果只会PHP的话,大多数通过GitHub触发器请求PHP页面,然后去更新,当然里面有很多问题,如执行的用户(www-data)通常不是常规用户,经常出现文件权限问题,导致建站失败。另外PHP有很多限制,如命令执行时间太长的话,也就会失败的。

这个软件叫EasyJobs,部署方法和典型的Rails应用差不多,详情看项目的README文件。默认用Puma作为服务器软件,production模式下用 Nginx + Puma 速度很好。软件用Net::SSH连接服务器,这样就可以解除之前PHP的问题。完全模拟我用终端连接。可以通过密码或者密钥登录。

利用Rails 4的ActionController::Live,传送HTML5的Server-Sent Events,只要你的浏览器不是IE就可以正常运作。SSH命令的各种输出能实时传送到网页上。只需要写好脚本就可以运行。脚本的解释器(interpreter)可以是bash/python/perl等等,可以自由决定。每次任务完成都会记录所用时间,列出图表,计算平均值。

项目地址:https://github.com/qnn/EasyJobs

EasyJobs_screenshot

EasyJobs

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  更改 )

Google+ photo

You are commenting using your Google+ account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

w

Connecting to %s