归档 2014年2月5日

基于Channel的Django日志查看工具

DjangoLogboard4Sae

DjangoLogboard4SAE是一个运行在SAE(Sina Application Engine)的实时日志查看工具

该工具使用了Channe服务,可将Django应用的请求与异常日志实时地展现给开发者,便于线上调试

Github:https://github.com/qinjiannet/logboard

演示地址:http://logboard.sinaapp.com

使用方法:

1. 在settings.py文件中MIDDLEWARE_CLASSES列表添加logboard.middleware.DebugMiddleware中间件

2. 启用SAE的task_queue模块,创建一个等级为2的顺序队列,命名为msg_queue

3. 初始化kvdb

4. 修改urls.py,添加路由:

  1. url(r'^logboard/', include ...

继续阅读

基于MySQLdb的SAE_PYTHON环境MYSQL小工具


Python代码 


  1. #coding=utf-8

  2. import sae.const

  3. import MySQLdb

  4.  

  5. #获取数据库连接

  6. def get_conn():

  7.   conn=MySQLdb.connect(host=sae.const.MYSQL_HOST,user=sae.const.MYSQL_USER,passwd=sae.const.MYSQL_PASS,db=sae.const.MYSQL_DB,port=int(sae.const.MYSQL_PORT),charset='utf8')

  8.   return ...

继续阅读

SAE_Channel服务尝鲜(Python版)

今天小试了一下SAE近期推出的Channel服务的Python版本,简单谈下自己的感受。
SAE_Channel服务拟满足的需求是“实时消息推送”,亮点是“推送”二字(push),应用了Html5的WebSocket协议。与之相对,Web应用中的消息传递功能也可采用ajax定时查询的方式实现。JS客户端(周期性地)主动向应用服务端发送新消息查询请求,亦即从服务端“拉取”(pull)信息,这种方式最大的不足之处就是无法保证新消息的实时性。

与传统的C/S模式消息传递方式相比,SAE_Channel服务新增了一个角色“Channel服务器”(URL:channel.sinaapp.com),充当了Client和Server之间的“中间人”(Mediator)。JS客户端、应用服务端以及Channel服务器的工作时序如下图所示(摘自Channel_API):

从上面的时序图可以看出,JS客户端通过应用服务端获取到channel的URL(形如ws://channel.sinaapp.com/{{token}}),此后即可与channel服务端采用WebSocket协议进行信息的上传和接收。
下面的Demo代码实现了JS服务端实时地从channel服务器获取消息并弹出提示框的简单功能。

JavaScript代码 
  1. <script src ...

继续阅读

明天

归档