gpt4 book ai didi

python - 让 PubNub 订阅者作为服务保持事件状态(Python SDK)

转载 作者:太空宇宙 更新时间:2023-11-04 02:21:46 24 4
gpt4 key购买 nike

我觉得很蠢。

我正在从 GPS/蓝牙节点向 PubNub 发布消息。这工作正常。

我需要订阅 PubNub channel 并将消息导入数据库 24/7(基于 Django 的 PostgreSQL)。我使用数据库来绘制节点位置、添加 key 、注册用户等...

问题:此 Python 脚本在 execute() 后终止。我需要它才能永远活着。

# Set up the client params
pnconfig = PNConfiguration()
pnconfig.subscribe_key = 'sub-23948570947502475057205702354702547'
pnconfig.ssl = True

# Connect to PubNub and subscribe to a channel
pubnub = PubNub(config=pnconfig)
pubnub.add_listener(NodeSubscribeCallback())
pubnub.subscribe().channels('node_raw').execute()

问题:如何将 PubNub channel 的订阅作为服务运行?换句话说,我怎样才能让 Python 保持我的脚本运行?

我试过:

  • 基于threading.Thread运行PubNub的几个独立类
  • while True: time.sleep(10)execute()
  • 之后
  • 谷歌搜索时间
  • signal.pause() 在我的脚本末尾

最佳答案

将 PubNub 订阅者保持为服务(Python SDK)

您可以使用数据库同步方法。您的代码即将完成。只需要一些点点滴滴。这是您实现目标所需的代码。

import pubnub

from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub, SubscribeListener

class DatabaseSync(SubscribeListener):
def message( self, pubnub, data ):
print( "Saving to Database: ", data.message )

pnconfig = PNConfiguration()
pnconfig.subscribe_key = 'demo' ## Only Need SubKey
pnconfig.ssl = True ## Use TLS Socket
pubnub = PubNub(pnconfig)

pubnub.add_listener(DatabaseSync())
pubnub.subscribe().channels("node_raw").execute()

就是这样!使用 Python 获取同步到数据库的事件更改日志的 super 简单方法。源 Material 来自PubNub Python Documentation还有一个古老的要点学习Python by Example .

Save Data to your Database with Python

关于python - 让 PubNub 订阅者作为服务保持事件状态(Python SDK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51447406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com