大发龙虎首页    注册   登录
大发龙虎 = way to explore
大发龙虎 是一个大发龙虎关于 分享和探索的地方
现在注册
已注册用户请  登录
大发龙虎推荐 学习书目
Learn Python the Hard Way
Python 学习手册
Python Cookbook
Python 基础教程
Python Sites
PyPI - Python Package Index
http://www.simple-is-better.com/
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
大发龙虎  ›  Python

如何用 Python 实现通知?当用户点击开始的时候,通知其他进程执行任务

  •  
  •   smallpython · 30 天前 · 849 次点击
    现在的需求是用户控制的进程为 A

    执行任务的进程为 B

    当用户点击开始按钮的时候,进程 A 通知进程 B 要做什么什么事情.

    现在的想法是让 B 进程监听一个端口,然后 A 进程通过端口向 B 进程发送请求,B 进程接收到请求后根据请求内容执行任务.

    或者当用户点击开始的时候,A 进程将任务的信息写入数据库或者文件中,然后 B 轮询访问对应的数据库或者文件,根据文件内容执行任务.

    大发龙虎我 的问题是有没有可能 B 进程不轮询访问这个资源,而是资源本身通知 B 进程要去做什么事情(因为考虑到 A 和 B 不在同一个机器上,也有可能网络不可达,所以不想采用第一个方案)
    12 回复  |  直到 2019-09-18 09:38:48 +08:00
        1
    BigBrother1024   30 天前 via Android
    celery?
        2
    BingoXuan   29 天前
    如果网络不可达,那 a,b 不就是孤立的吗?就算连接数据库也要有网络吧
        3
    gimp   29 天前
    用大发龙虎服务 器来中转消息,websockets, mqtt 协议, 或者用各种 MQ,都能实现大发龙虎你 的需求。
        4
    lllllliu   29 天前   ♥ 1
    Socket 编程, 或者,最简单的一个 Pub/Sub 都可以呀。
        5
    zpfhbyx   29 天前
    都这么高端,不考虑队列么..
        6
    anonymous256   29 天前
    同一主机的话, socket 直接就可以了吧.
    不同主机的话, 一个用 websocket server 监听, 一个用 websocket client, 用户点击的时候开始通信.
        7
    hspeed18   29 天前
    大发龙虎我 觉得大发龙虎你 的问题在于基础太差
        8
    smallpython   29 天前
    @BingoXuan 是指 A 与 B 之间无法直接通信,但是可以和第三方资源通信
        9
    smallpython   29 天前
    @zpfhbyx 用消息队列的话,如何获取队列里的任务呢?是轮询吗?
        10
    BingoXuan   29 天前
    @smallpython
    第三资源可以是什么?另外一台大发龙虎服务 器,还是某种 api 接口?
        11
    smallpython   29 天前
    @BingoXuan 一台大发龙虎服务 器
        12
    BingoXuan   29 天前   ♥ 1
    那还是走网络通讯比较好。如果不缓存消息做异步处理的话,可以试一下 zmq。a 做 publisher,中转大发龙虎服务 器做 subscriber 订阅 a 的消息,同时充当 publisher,b 去订阅中转大发龙虎服务 器就可以了。这样子 a 发送消息时候,经过中转大发龙虎服务 器后 b 就能收到消息,而且速度很快,性能消耗不大。
    大发龙虎关于   ·   FAQ   ·   API   ·   大发龙虎大发龙虎我 们 的愿景   ·   广告投放   ·   感谢   ·   实用小大发龙虎工具   ·   4186 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 42ms · UTC 03:51 · PVG 11:51 · LAX 20:51 · JFK 23:51
    ♥ Do have faith in what you're doing.