- PUSH_SERVER_URL 是推送的url,默认是本机的push服务
一定要注意redis启动方式
nohup redis-server --notify-keyspace-events Ex --loglevel verbose >./redis-server.log 2>&1 &
./start.sh
http使用3452端口
- express(API)
- redis(任务调度)
- mongodb(存储任务)
cron triggered:use queue
增加调度,等触发调度的时候,对外发送请求,这样就能够做到通用了
https://github.com/bunkat/later
此时的任务,会发给阶段1的基础延时调度来处理
通过3个阶段的处理,可以完成大规模的部署
- _id
- time
- desc
- callback_url
- is_finished
- create_at
情景
2014-11-11 11:10 财神给小墨发送消息
- 增加一个调度
- 移除一个调度
- 获取调度列表
- 查看调度详情
http://42.62.8.172:3453/api/v0.1.0/push
http://127.0.0.1:3452/api/v0.1.0/tasks
post
x-www-form-urlencoded
参数
- time = 2014-10-17 20:43:44
- desc = desc
- callback_url = http://127.0.0.1:3453/api/v0.1.0/push/api
- data = eyJ0b2tlbiI6IkIxNTA0RDk5RjBDMERCODA0ODcwOUVDNThCQUNENEExMDU0Q0IzMzFDNTc2MjdBMDQyRTcyQ0UxREZDNjg3M0YiLCJhbGVydCI6Iui
说明:
data是对象,转成string,然后base64获得的。具体算法如下:
var d = { token:'B1504D99F0C0DB8048709EC58BACD4A1054CB331C57627A042E72CE1DFC6873F', alert:'这是我的消息,你妹啊1211221', payload:{ "status": { "dfsdsf": 0, "msg": "success" } }, badge:'1' }
//JSON.stringify(d) = {"token":"B1504D99F0C0DB8048709EC58BACD4A1054CB331C57627A042E72CE1DFC6873F","alert":"这是我的消息,你妹啊1211221","payload":{"status":{"dfsdsf":0,"msg":"success"}},"badge":"1"}
var a = new Buffer(JSON.stringify(d)).toString('base64');
// a= eyJ0b2tlbiI6IkIxNTA0RDk5RjBDMERCODA0ODcwOUVDNThCQUNENEExMDU0Q0IzMzFDNTc2MjdBMDQyRTcyQ0UxREZDNjg3M0YiLCJhbGVydCI6Iui/meaYr+aIkeeahOa2iOaBryzkvaDlprnllYoxMjExMjIxIiwicGF5bG9hZCI6eyJzdGF0dXMiOnsiZGZzZHNmIjowLCJtc2ciOiJzdWNjZXNzIn19LCJiYWRnZSI6IjEifQ==
test with curl
curl -d "time=2014-10-25 16:32:59&desc=sfsfd&callback_url=http://127.0.0.1:3453/api/v0.1.0/push/api&data=eyJ0b2tlbiI6IkIxNTA0RDk5RjBDMERCODA0ODcwOUVDNThCQUNENEExMDU0Q0IzMzFDNTc2MjdBMDQyRTcyQ0UxREZDNjg3M0YiLCJhbGVydCI6Iui"
http://127.0.0.1:3453/api/v0.1.0/push
x-www-form-urlencoded
参数
- token = B1504D99F0C0DB8048709EC58BACD4A1054CB331C57627A042E72CE1DFC6873F
- alert = 这是我的消息,你妹啊1211221
- payload = { "status": { "dfsdsf": 0, "msg": "success" } }
- badge = 0