怒了,三个月来根本没有人点广告!!! :((
最新博文
http://dev.mysql.com/doc/refman/5.0/en/union.html
QA mm用子查询效率很慢找到了union的方法,我也顺带学习学习
发觉用处不大,不过挺搞怪的,可能零时查查还有些用户
2010-7-29 15:46:35
用了rocket amf , 有些问题 , Externalized的话没法处理,不过别的都不错
require 'rubygems'
require 'eventmachine'
require 'rocketamf'
RocketAMF::ClassMapper.define do |m|
m.map :as => 'User', :ruby => 'User'
#m.map :as => 'vo.User', :ruby => 'Model::User'
end
class User
attr_accessor :name
attr_accessor :age
def initialize(name = 'kk' , age = 1)
@name = name
@age = age
end
def to_amf serializer
stream = ""
if serializer.version == 0
p "to amf 0"
data = {
:name=> @name,
:age=> @age
}
serializer.write_hash(data, stream)
else
p "to amf 3"
serializer.write_object(self, stream)
end
ret = stream
p ret
ret
end
end
class AmfServer < EM::Connection
def post_init
p "post init!!!!!!!"
end
def unbind
p "unbinddding!!!!!"
end
def receive_data data
p data
obj = RocketAMF.deserialize(data, 3)
p obj
p obj.name
p obj.age
end
end
EM::run do
EM::start_server 'localhost' , 8088 , AmfServer
end
2010-7-9 15:54:41
// client.as
package
{
import flash.display.Sprite;
import flash.events.*;
import flash.net.Socket;
import flash.text.TextField;
import flash.net.registerClassAlias;
public class amfclient extends Sprite
{
protected var txt:TextField = new TextField();
public function amfclient()
{
registerClassAlias("User", User);
txt.text = 'hello world';
txt.x = 10;
txt.y = 10;
txt.addEventListener(MouseEvent.CLICK , clickHandler);
this.addChild(txt);
}
public function clickHandler(e:MouseEvent):void{
txt.text = 'ok';
var client:Socket = new Socket();
client.connect('localhost' , 8088);
var msg:String = "hello i am amf clientt1";
msg = 'hello i ';
//传过去还是带了一个长度信息在前面的
//client.writeUTF(msg);
var tt = ['aa' , 'bb'];
var user = new User();
client.writeObject(user);
client.flush();
}
}
}
// User.as
package
{
import flash.utils.IExternalizable;
import flash.utils.IDataInput;
import flash.utils.IDataOutput;
public class User implements IExternalizable
{
public var name:String;
public var age:int;
public function User()
{
name = 'helloo';
age = 12;
}
public function readExternal(input:IDataInput):void {
//id = input.readUnsignedInt();
name = input.readUTF();
}
public function writeExternal(output:IDataOutput):void {
//output.writeInt(age);
output.writeUTF(name);
}
}
}
2010-7-9 15:52:02
http://github.com/tmm1/em-mysql
sudo gem install em-mysql
http://github.com/espace/mysqlplus
sudo gem install mysqlplus
em-mysql 跑不起来,版本问题
http://github.com/igrigorik/em-mysqlplus
sudo gem install em-mysqlplus
归根到底所有的都用了mysqlplus这个可以使用非阻塞或者多线程
http://www.javaeye.com/news/3423-mysqlplus---non-blocking-mode-ruby-mysql-interface
需要defer用一个线程来执行吗?
我觉得没有这个必要,整个业务逻辑可以defer实现,这个是业务的一部分
应该就可以在业务的那个线程里面跑,当然他的非阻塞特性还是用到了
#require 'mysqlplus'
#require 'em/mysql'
require 'em-mysqlplus'
EventMachine.run {
EM.stop
conn = EventMachine::MySQL.new(:host => 'localhost' , :user => 'saybot' , :password => 'saybot' , :database => 'saybot_vw')
query = conn.query("select id , passport_id from User order by id limit 3")
sleep(1)
#query = conn.query("error sql select id , passport_id from User order by id limit 3")
p "xxxxxxxxx"
query.callback { |res| p res.all_hashes }
query.errback { |res| p 'error happended'}
p "xxxxxxxddddd"
}
2010-7-8 17:41:38
Google 本站内容:
友情链接:
Category:
Resent Comment:
- http://air-max-tn.in
2010-7-30 10:45:36 - http://penguinaloca.
2010-7-30 10:37:28 - http://leihwegenanta
2010-7-30 10:28:53 - http://mlbjerseys.or
2010-7-30 10:12:25 - http://walkietalkies
2010-7-30 10:04:44 - http://two-wayradios
2010-7-30 9:56:06 - http://kiralikarabaa
2010-7-30 9:48:07 - http://tutors-self-a
2010-7-30 9:40:04 - http://saynanach.com
2010-7-30 9:32:04 - http://chaussuresjor
2010-7-30 9:15:38