Python我可以使用blinker库吗?

2024-04-29 09:20:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道我是否可以用blinker库(或者其他库)来完成这些工作。在

  1. 我使用Flask运行一个web应用程序,在这个应用程序中(可能是app.py),我定义了一个名为updated的信号(例如blinker.signal('updated'))。在
  2. 在一个单独的过程中,我将任何函数(我将其称为subscriber)连接到更新的信号。这个进程像守护进程一样永远运行。在
  3. 每当web端发生更新时,我希望调用subscriber函数。在

所以我写了一些代码:

应用程序副本(烧瓶应用)

from flask import Flask
from blinker import signal

app = Flask(__name__)
updated = signal('updated')

@app.route('/update')
def update():
    updated.send('nothing')
    return 'Updated!'

背景.py

^{pr2}$

并使用flask run命令运行web应用程序。现在,当我访问localhost:5000/update时,我可以在浏览器中看到Updated!消息,但我看不到来自其他进程的消息An update occurred on the web side!。在

我的方法错了吗?如果是的话,我怎么能做这样的工作?等待你的回答,谢谢。在


Tags: 函数frompywebapp应用程序flasksignal
1条回答
网友
1楼 · 发布于 2024-04-29 09:20:09

闪光灯说明is

A fast Python in-process signal/event dispatching system.

强调我的,所以不,你不能使用库在两个进程之间发送信号。在

你能做什么呢?{a2有一个完整的Python文档。不清楚您要构建什么,但是如果您需要构建一个任务队列(使用“workers”),例如,可以尝试Celery或{a4}。如果您确实需要在进程之间发送消息,那么更复杂的东西,如ZeroMQ将是合适的。在

相关问题 更多 >