请选择 进入手机版 | 继续访问电脑版

游迹天下-移动本地生活平台服务提供商

 找回密码
 立即注册
搜索
查看: 2232|回复: 0

游迹移动移动本地生活平台任务调度技术架构

[复制链接]

85

主题

85

帖子

313

积分

版主

Rank: 7Rank: 7Rank: 7

积分
313
发表于 2013-11-10 20:18:06 | 显示全部楼层 |阅读模式
本帖最后由 liangchuan 于 2013-11-10 20:25 编辑

   游迹移动移动本地生活平台有诸多业务需要实现在多台服务器间做任务、账号资源、服务器资源的分布式调度、分发,需求场景不细说,你懂的。先考察了Celery、resque、Pyres几个典型的异步任务调度的开源项目,对比项目需求后,感觉要直接利用这几个项目做实现,比较费劲,基于django、redis、rabbitmq、APScheduler实现了自己的分布式任务分发调度器,效果不错,架构供参考。   
    一些体会:
    1、习惯了关系型数据库导向的设计思维方式,一下切换到Redis上,在数据结构的设计上需要在思维模式上做一些适应、调整。习惯后,会深深体会到其优势。Redis提供的几种数据结构貌似简单,但能够满足诸多复杂的场景,而且对数据结构的定义、调整极其方便。
   2、有诸多基于Redis的消息队列的项目可供选择,之所以没采用Redis作为分布式的消息队列,而采用了RabbitMQ ,主要是考虑到消息的可靠传输、消息确认、消息路由问题。
   3、任务队列的概念,在诸多业务架构设计中都应该引入,对有架构扩展、性能都极为重要。对一般的任务调度服务,没必要自己再发明一遍轮子,建议先考察一下Celery或resque后,再考虑是否需要自己实现。
   4、之所以有任务拆分的逻辑,主要考虑:分拆成相互独立的子任务,以便于尽快执行任务,同时避免任务过长失败的几率
   另外可以参考:消息驱动的自动化抓包架构


任务调度架构.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|游迹,懂你,懂世界!   游迹天下官方微信:uooji_com,游迹语音助手:uoojihelper|网站地图

GMT+8, 2019-5-27 04:08 , Processed in 0.161675 second(s), 41 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表