V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
cevincheung
V2EX  ›  Python

python 能不能干这种工作

  •  
  •   cevincheung ·
    cevin · 2014 年 3 月 25 日 · 5768 次点击
    这是一个创建于 4331 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个http请求队列。写个daemon。 一个http rest的api调用。

    push一个url进去。 push-> url,callbackurl,post|get,postdata(optional),timeout(optional)
    然后执行完毕后回调callbackurl(一般是在同一台服务器或内网服务器)

    然后队列数量可能会有点大。N台服务器跑这个脚本。服务端随机把队列请求push到这些服务器上。


    或者把队列内容push到redis里。N台服务器上的脚本不停的拿redis(用redis做m/s好做容灾)

    python干这个能扛得住咩?



    ---
    或者现在有木有类似的已经成型的产品能用的@.@
    第 1 条附言  ·  2014 年 3 月 25 日
    补充一下,是这样的。



    比如:
    post http://127.0.0.1:py_port/create
    url=http(s)://www.domain.com
    method=post
    timeout=30s
    postdata=xxxxx
    callbackurl=http://127.0.0.1:internal_system_port/some_id

    python收到,入队列,python请求上面传递的url,根据method选择get还是post请求。然后把该服务器的输出post到callbackurl。

    或者
    redis.add:
    {url:http, method:post, timeout:30, postdata:[], callbackurl=http }
    python去读redis。
    25 条回复    1970-01-01 08:00:00 +08:00
    towser
        1
    towser  
       2014 年 3 月 25 日
    有点像消息队列异步调用
    lch21
        2
    lch21  
       2014 年 3 月 25 日
    httpsqs 似乎能干这个
    lch21
        3
    lch21  
       2014 年 3 月 25 日
    httpsqs 有各种语言的客户端
    xiaozi
        4
    xiaozi  
       2014 年 3 月 25 日
    beanstalkd
    gotounix
        5
    gotounix  
       2014 年 3 月 25 日
    celery?
    ygmpkk
        6
    ygmpkk  
       2014 年 3 月 25 日
    @gotounix celery +1 这个情况就使用这工具来完成。
    cevincheung
        7
    cevincheung  
    OP
       2014 年 3 月 25 日
    @lch21 要的是一个队列+执行器(暂时这么叫他吧)。sqs只是一个队列存储,并没有“执行者”
    cevincheung
        8
    cevincheung  
    OP
       2014 年 3 月 25 日
    @gotounix
    @ygmpkk
    已补充
    gotounix
        9
    gotounix  
       2014 年 3 月 25 日
    @cevincheung celery+redis
    cevincheung
        10
    cevincheung  
    OP
       2014 年 3 月 25 日
    @gotounix 就是说python是ok的,能扛得住?
    gotounix
        11
    gotounix  
       2014 年 3 月 25 日
    @cevincheung 能不能扛住,不知道!但是,提供了可以实现你需求的方法,你可以自己尝试、测试。除了你自己,没有人能帮你测试,大家的业务需求都不一样,应用环境也不一样,不能一概而论,下结论。
    mantianyu
        12
    mantianyu  
       2014 年 3 月 25 日
    这种功能大部分语言都能实现啊
    mantianyu
        13
    mantianyu  
       2014 年 3 月 25 日
    @mantianyu 当然, 包括python
    jyz19880823
        14
    jyz19880823  
       2014 年 3 月 25 日
    功能不难啊,不过要是数据量大的话,还是用静态语言吧,试试go
    lch21
        15
    lch21  
       2014 年 3 月 25 日
    python 的优势在于编程效率高
    至于能不能扛得住,就要根据软硬件环境测试了
    我个人感觉没什么问题
    可以先做个模型测试,实在不行再改静态语言
    NCE
        16
    NCE  
       2014 年 3 月 25 日
    这和python有关系么?用php也可以。
    NCE
        17
    NCE  
       2014 年 3 月 25 日
    谈性能之前,先给个范围,N多服务器,请求数量有点大,先量化一下,同时请求数,再说吞吐量。
    cevincheung
        18
    cevincheung  
    OP
       2014 年 3 月 25 日   ❤️ 1
    @NCE 不需要多高的性能。只要能保证daemon不死就行- -#
    NCE
        19
    NCE  
       2014 年 3 月 25 日
    没问题的,这才到哪啊
    lookhi
        20
    lookhi  
       2014 年 3 月 25 日 via Android
    可以 我们队列就是py做的
    里面有大约1000多万的任务在 普通请求也没问题。
    janxin
        21
    janxin  
       2014 年 3 月 25 日 via iPad
    celery
    janxin
        22
    janxin  
       2014 年 3 月 25 日 via iPad
    +supervisor
    cevincheung
        23
    cevincheung  
    OP
       2014 年 3 月 25 日
    @lookhi 你们怎么做的
    lookhi
        24
    lookhi  
       2014 年 3 月 25 日
    @cevincheung 基于tornado的 tornado做一个Server很方便的.
    guotie
        25
    guotie  
       2014 年 3 月 26 日
    nsq
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2225 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 12:27 · PVG 20:27 · LAX 04:27 · JFK 07:27
    ♥ Do have faith in what you're doing.