问题标签 [blinker]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4851 浏览

python - Python - 信号与 pubsub 有何不同?

Django 和 Flask 使用信号——后者使用Blinker库。在 Python、Blinker和 Python pubsub库的上下文中,信号和 pubsub 如何比较?我什么时候使用其中一个?

0 投票
2 回答
10660 浏览

python - 将 Flask-security 实例导入我的视图模块会破坏我的 webapp

我正在为电子商务网站编写注册/登录系统,并使用 flask-security ( http://pythonhosted.org/Flask-Security/ ) 来处理注册功能。部分基本设置需要以下 signup.py 模块:

然后我必须将 user_datastore 和安全对象导入到我的 views.py 模块中,如下所示:

问题是,一旦我将上述导入语句包含到我的视图模块中,我的整个应用程序就会崩溃,并且当我尝试运行我的单元或行为测试时出现以下回溯错误(为便于阅读而编辑)

我不知道这是什么意思。我试过阅读烧瓶安全文档,但我不明白为什么会这样。感谢任何对此进行尝试的人!

0 投票
1 回答
1193 浏览

python - Flask 信号:为什么不能修改信号上的数据?

烧瓶文档说:

还要记住,信号旨在通知订阅者,不应鼓励订阅者修改数据

我想知道,为什么会这样?

我正在使用 Flask-User 库,我想在用户注册时为用户设置一些默认字段(例如,将显示名称设置为等于用户名),然后更新数据库。Flask-Useruser_registered在用户注册时发送信号。为什么订阅信号并在其中更新 db 是个坏主意?

0 投票
1 回答
171 浏览

python - 闪烁器在 Python 2.6 中不起作用

这段代码在 Python 2.7 上运行良好。但不适用于 Python 2.6。我得到这个踪迹:

有没有办法让它在 2.6 环境中工作?

0 投票
2 回答
1293 浏览

python - Flask-Security user_registered 信号在 Python 3.3 中未收到,但在 2.7 中有效

我正在尝试使用 user_registered 信号,以便在用户使用 Flask-security 注册时为用户设置默认角色,如下链接所示:在 Flask Security 中设置默认角色

在我的搜索中,我可以看到烧瓶安全中已经解决了一个错误:没有从烧瓶安全获得信号修复 - 用户注册的信号问题

我尝试了以下方法来证明处理程序是否收到了信号,但没有任何运气:

但是,即使用户已注册并且应该发送信号,它也永远不会被调用。

如果有帮助,我将烧瓶安全配置设置如下:

来自 Flask-Login 和 Flask-Principal 的信号对我有用,因为我设法确认以下代码片段在发送信号时成功打印:

对于我的设置,我使用 python 3.3 (anaconda) 并使用以下内容:Flask==0.10.1,flask-login==0.2.11,flask-principal==0.4.0,flask-security==1.7.4,闪光灯== 1.3。查看了烧瓶登录和烧瓶安全中的信号后,我不确定为什么烧瓶安全信号不起作用。

编辑:

如果我print(user_registered.receivers)在我的应用程序中添加路由,它将显示我有一个接收器:{139923381372400: <function user_registered_sighandler at 0x7f42737145f0>}。如果我将相同的打印语句放在 flask-security 的 registerable.py 之前,user_registered.send(app._get_current_object(),user=user, confirm_token=token)那么它不会列出任何接收者:{}

编辑2:

问题似乎与使用 python 3.3 有关。我创建了一个 python 2.7 环境,并且 user_registered 代码按预期工作。

完整的代码重现:

base.html 模板:

0 投票
2 回答
439 浏览

python - 从 Tornado 的 ProcessPoolExecutor 收集增量结果

我有一个tornado应用程序需要在ProcessPoolExecutor. blinker这个阻塞函数使用了一个通过事件发出增量结果的库。我想收集这些事件并tornado在它们发生时将它们发送回我的应用程序。

起初,tornado它似乎是这个用例的理想选择,因为它是异步的。我想我可以简单地将一个tornado.queues.Queue对象传递给要在池上运行的函数,然后将事件作为我的事件回调put()的一部分传递到这个队列中。blinker

但是,阅读 的文档后tornado.queues.Queue,我了解到它们不是跨进程管理multiprocessing.Queue的,也不是线程安全的。

有没有办法从pool它们发生时检索这些事件?我应该包装multiprocessing.Queue让它产生Futures吗?这似乎不太可能奏效,因为我怀疑其内部multiprocessing是否与tornado.

[编辑] 这里有一些很好的线索:https ://gist.github.com/hoffrocket/8050711

0 投票
1 回答
1319 浏览

python - 带闪灯的异步/多线程

我有一个树莓派,我已经连接了一个 4 按钮键盘。使用来自 blinker 的信号东西,我将它连接起来运行一些方法。

这工作正常,但是当我第二次按下按钮时(在上一次按下按钮的 10 秒内)它不会触发该方法,因为线程在time.sleep(10).

我怎样才能让它在它仍然暂停时再次触发该方法(可能在另一个线程中)

0 投票
1 回答
56 浏览

javascript - React 中的 Blinker 速度不一致

我正在尝试在 React 中创建一个闪烁器,但是,闪烁器本身以不一致的速率闪烁/渲染,并且表现得有些令人沮丧。请参阅随附的片段。组件安装有什么问题吗?谢谢!

0 投票
1 回答
2451 浏览

python - Python - 我可以为此目的使用闪烁器库吗?

我想知道我是否可以使用blinker 库(或者任何库)来完成这些工作。

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

所以我写了一些代码:

app.py(Flask 应用程序)

背景.py

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

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