我写程序现在都是断断续续的,今天也不例外,只能边写边找感觉,做程序员的感觉其实挺好的。很多天没写sae程序的了,我在本子上列了一个优先级,今天终于完成了一个功能,自动批量评价。原理其实很简单,就是调用TOP的接口,在SAE上半小时Cron一下,查询有没有需要的评价,如果有的话,通过taskqueue来评价就好。我这样做也是迫不得已,本来想做一个手动评价的,但无奈前端技术不佳,只好写不用前台的程序了。遇到了几个问题:
1、根据上述思路,首先要解决的是session问题,总不能让用户经常登陆获取Auth吧。我看了一下,自用的可以管一年,非自用的,要时不时刷新refresh token的。所以我新建了一个商家自用的TOP APP。
2、Top接口评价,需要session。我一开始session是存在cookie里的,本地浏览器刷新是OK的,但似乎没执行,看到后台记录又是200。想了半天才想到SAE服务器上没法获取cookie。想了一下,重写接口,保存到KVDB里了。我看了好一会文档,感觉Mysql太重了,Memcache似乎有时效,KVDB默认是永不失效的。KVDB用起来很方便,我比较喜欢。
3、调试Cron和taskqueque的心得:不过是GAE还是SAE,我总是先确保这个函数是没问题的,然后再写taskqueque,最后再写cron。
(1)调试Taskqueue的时候,SAE的python文档让我有点疑惑,我看了别人的文章才成功的,我写成了下面的形式:
add_task('taskname', '/task/add',"tid=%d" % (int(data['tid'])))
(2)调试Cron的时候,在config.yaml里的url,最好别写成/cron/test的形式,而是写成cron/test的形式,因为前者拼接url的时候,可能是http://***.saeapp.com//cron/test的形式,我一开始调试不成功,以为是这个原因;cron可以写相对域名的。最重要的一点是,Cron是Post方法的,都怪我没细看文档,调了三个五分钟再看文档才恍然大悟。
4、调试:不管是GAE还是SAE,基本上我就从来没在本地调试过。不过SAE不支持Logging,让我调试的速率有点慢。不知道其他人都是怎么在线调试的。
程序还没完善的地方,应该也不难实现:
1、评价分发给Taskqueue之前,要判断是否是合法的。——工作量0.5小时。
2、要增加中差评查询的接口,我基本写好了。写好了之后要想方法通知卖家(邮件、gtalk、短信等),实效性越大越容易沟通掉中差评。
—— 工作量:邮件0.5小时,gtalk0.5小时,短信(短信需要调试了)
3、Cron的时间:现在是每半小时cron一次,我认为从9:00~24:00可以这样,但9:00之前就不需要这样了。这点还没改,明天改一下,这样能节约云豆,并且半夜不会有短信骚扰卖家。——工作量:几分钟,就看个文档改一下就好。
4、从自用程序扩展为上商店的应用,应该有卖家需要的,一开始没人气可以1元试用一个月,超过100人使用之后就定价每月5元。如果有一百人用的话,我就可以申请SAE中级开发者补充云豆了,就算申请不了也有收入的话可以买云豆自负盈亏。呵呵,这个如意算盘不错。
—— 主要是refresh token部分,当然,KVDB部分也得加上uid识别,要不就没法知道是谁的token了。估计上线需要一天的工作量,计划清明节假期期间提交上线。
明天看看一天的云豆使用量。
...