Rails有乐观锁悲观锁,但是悲观锁它不支持整个table的锁啊
好吧,那就SQL吧:
ActiveRecord::Base.connection.execute("LOCK TABLE XXX WRITE")
ActiveRecord::Base.connection.execute("UNLOCK TABLES")
在Console下试了试,不同进程,可以锁!同步了!
但是,在fastCGI下就是锁不住!
搞一个全局变量,很可行!
ActiveRecord::Base.connection.execute("select get_lock('lock_xxx', 100)" ...
单引号、双引号、<script></script>标签等等,都可以用Prototype.js的这段代码来escape(sliu真乃JavaScript高人):
function escapeHTML(str) {
var div = document.createElement('div');
var text = document.createTextNode(str);
div.appendChild(text);
return div.innerHTML;
};
cron job如果加载rails环境来使用Logger,这样就有多个进程操作Logger,在Logger做Shifting时会有异常,比较取巧的解决方法就是在environment.rb里加一个常量判断(sliu大人的建议):
if !$CRON_JOB_STATUS
$LOG = Logger.new(File.join(RAILS_ROOT, '/log/rails.log'),'daily')
else
$LOG = Logger.new(File.join(RAILS_ROOT, '/log/cronjob.log'),'daily')
end
然后在cron ...
加入/usr/bin/ruby和/usr/local/bin/ruby有两份程序,而你又没有指定执行哪个,而是按PATH先后顺序来执行,这样就很容易出一些乱七八糟的问题:
no such file to load -- rubygems
no such file to load -- json
no such file to load -- ubygems
所以最好是在你的Cron Job里这样做:
/usr/local/bin/ruby xxx_job.rb
http://webonrails.com/2007/09/13/acts_as_solr-starting-solr-server-on-windows/
acts_as_searchable是一个Rails插件,它依赖于Hyper Estraier这个独立的搜索引擎所提供的索引和搜索服务
1,安装Hyper Estraier
去http://hyperestraier.sourceforge.net/win/下载Binary Packages for Windows,将hyperestraier-1.4.10-win32.zip解压到C:\hyperestraier,将C:\hyperestraier加入到系统环境变量PATH中去
2,启动Hyper Estraier
C:\est> estmaster init .
C:\est> ...
sphinx-0.9.8-rc1-win32与MySQL5.1.x一起使用会出错,换成低版本的MySQL5.0.x即可
应该是MySQL的client/server libraries不匹配导致的
gem install ferret -v=0.11.5 --platform mswin32
要加0.11.5版本号和mswin32平台两个参数,否则安装出错
编辑cron job信息:
crontab -e
每隔10分钟执行一次:
10 * * * * /home/hideto/test.sh
利用ps查看进程来防止进程重复启动:
RS=`ps aux|grep xxx_job|grep -v grep`
if ["$RS" = ""]; then
echo "No xxx_job instance, start a new one!"
ruby xxx_job.rb
else
echo "Already exists a xxx_job instance, exit!"
exit
fi
其实很简单,加载environment.rb文件即可,如假设一个.rb脚本在Rails项目根目录下:
require File.dirname(__FILE__) + '/config/environment'
然后就可以使用ActiveRecord模型了
-- FUNCTION check_asset_group_mirror_relationship
DROP FUNCTION IF EXISTS check_asset_group_mirror_relationship;
DELIMITER |
CREATE FUNCTION check_asset_group_mirror_relationship(group_id bigint(20)) RETURNS int
BEGIN
DECLARE group_type varchar(255);
DECLARE mirror_flag int default ...
- 浏览: 612370 次
- 性别:

- 来自: BJ

- 详细资料
搜索本博客
我的相册
screenshot
共 1 张
共 1 张
最近加入圈子
最新评论
-
深入了解Java ClassLoader ...
当我对字节码编译不知所措的时候,发现了这个帖子 谢谢楼主,目前正在学习ASM C ...
-- by ytzhsh -
Rails里如何结合Exceptio ...
收藏了,小工具,好东西.
-- by yangzhihuan -
使用coderay和railscasts ...
不错,很爽,如果能显示成textmate那样的就好了。
-- by carlosbdw -
Axis2快速上手指南
看得很累,希望楼主写个HelloWorld.谢谢
-- by zznj1123 -
使用coderay和railscasts ...
javaeye自己用的是什么highlight什么的吗?
-- by qichunren






评论排行榜