无法获取的结果公共时间()在Python中

2024-04-27 05:41:16 发布

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

如何得到结果公共时间()什么时候打电话?这肯定与我对python不太了解有关。。。在

我在打电话公共时间()测试网络连接何时恢复,以便pubnub可以重新连接,我可以重新订阅必要的频道。我似乎得不到所需的输出。根据pubnub docs,time()有3个将返回int、string或date的方法。在

envelope = pubnub.time()

envelope.int()  outputs error
envelope.str()  outputs error
envelope.date_time()  outputs error

{{cd2>只能得到功的东西。在

我不会深入研究我在这上面尝试了多少次迭代,然后来寻求帮助。在

更新

我们有两个远程系统,我们想用PubNub从连接到机器的硬件上收集数据点。数据请求会进来,PubNub需要对请求做出响应。我们的主要问题是,这些远程位置的DSL非常脆弱,一次可以掉几个小时到几天,而我们的python应用程序仍在运行,PubNub无法重新连接。尝试使用线性和指数重新连接策略在internet中断后都无法重新连接。不过,小规模、短时间的停机将会恢复。除此之外,PubNub对于这个设置非常有用。在

这是我的设置配置

^{pr2}$

以下是我们的订阅回复:

class MySubscribeCallback(SubscribeCallback):
    def presence(self, pubnub, presence):
        pass

    def status(self, pubnub, status):
        if status.is_error():
            logger.error("PN Error" + str(status.error_data.exception))

        if status.category == 
            PNStatusCategory.PNUnexpectedDisconnectCategory:
            logger.error("PN Unexpected Disconnect")
            pubnub.reconnect()
            pass

        elif status.category == PNStatusCategory.PNConnectedCategory:
            logger.info("PN Connected")

        elif status.category == PNStatusCategory.PNReconnectedCategory:
            logger.warning("PN Re-Connected")
            pubnub.subscribe().channels('devChannel').execute()
            pass

        elif status.category == PNStatusCategory.PNDecryptionErrorCategory:
            logger.error("PN Decryption Error")
            pass

Tags: timestatus时间errorpassloggeroutputsint
1条回答
网友
1楼 · 发布于 2024-04-27 05:41:16

网络错误时重新连接PubNub SDK

PubNub SDK是耐用的,能够在不稳定的网络条件下保持套接字连接。虽然连接可能并不总是可用的,但是一旦网络连接恢复,PubNub SDK应该自动重新创建套接字并下载任何丢失的消息。PubNub pythonsdk应该遵循这一理念。在

在示例代码中,您似乎正在设置reconnect_policy。但是,您的代码将reconnect策略变量设置为'PNReconnectionPolicy.EXPONENTIAL'字符串,而不是enumPNReconnectionPolicy.EXPONENTIAL。在

尝试对代码进行以下修改以利用重新连接策略:

from pubnub.enums import PNReconnectionPolicy       ## <  Import Enumerator
from pubnub.pnconfiguration import PNConfiguration

## ... init ...

## Set Reconnection Policy using Enumerator
pnconf.reconnect_policy = PNReconnectionPolicy.EXPONENTIAL

SDK的默认值是pnconf.reconnect_policy = PNReconnectionPolicy.NONE。另一个有效的选项是pnconf.reconnect_policy = PNReconnectionPolicy.LINEAR。在

设置为PNReconnectionPolicy.LINEAR以进行自动重新连接。使用选项PNReconnectionPolicy.NONE禁用自动重新连接。使用选项PNReconnectionPolicy.EXPONENTIAL设置指数重试间隔。在

参考资料:https://github.com/pubnub/python/search?q=PNReconnectionPolicy&unscoped_q=PNReconnectionPolicy

文件材料:https://www.pubnub.com/docs/python/api-reference-configuration#configuration-args-1

相关问题 更多 >