小编Luí*_*chi的帖子

如果您尝试关闭连接,应用程序会挂起

我将 Swift 3 与名为“PodRTC”的 WebRTC pod 一起使用。

如果我打开一个连接,关闭并打开另一个完美的作品。但是,如果由于某些不幸的原因我有一个打开的连接,我会尝试创建新的 par 连接,该应用程序会被阻止。或者相反,如果您尝试关闭未打开的连接,应用程序也会挂起。

这些挂起是随机发生的,但总是在我调用“关闭”方法时发生。下面是一个例子:

private func prepareNewPeer() {
        if let peer = self.peer, peer.responds(to: #selector(RTCPeerConnection.close)) {
            do {
                peer.close()
            }
        }
        self.chatChannel = nil
        self.peer = nil
        ....
Run Code Online (Sandbox Code Playgroud)

应用程序只是挂起,但也不会产生错误。显然,它不会循环,因为处理速度很低。它看起来像库中的一些错误。

这发生在 .close() 方法调用中。我试图以各种方式保护该方法,但无济于事。

OBS:值得一提的是,有时候挂掉的不仅仅是app,而是整个操作系统。在使用 Xcode 编译新版本或重新启动手机或等待几分钟之前,我无法播放任何其他内容。


要使用 Xcode 的“暂停程序执行”按钮中断应用程序并查看各个线程上发生的情况:

我的代码中停止的那一行是“.close()”和之前的注释。

在此处输入图片说明

iphone ios webrtc swift

5
推荐指数
0
解决办法
439
查看次数

替换“ tzinfo”,并用本地时间打印六分钟

我正在创建一个DataTimeField没有时区。不久,我将“手动”编辑此TZ,然后要求读取本地TZ的值。看到最终结果修改了六分钟!

逻辑:

>>> import datetime
>>> from django.utils import timezone
>>> test = datetime.datetime(2016, 9, 28, 10, 10, 10)
datetime.datetime(2016, 9, 28, 10, 10, 10)

>>> test = teste.replace(tzinfo=pytz.timezone('America/Sao_Paulo'))
datetime.datetime(2016, 9, 28, 10, 10, 10, tzinfo=<DstTzInfo 'America/Sao_Paulo' LMT-1 day, 20:54:00 STD>)

>>> timezone.activate(pytz.timezone('America/Sao_Paulo'))
>>> timezone.localtime(test)
datetime.datetime(2016, 9, 28, 10, 16, 10, tzinfo=<DstTzInfo 'America/Sao_Paulo' BRT-1 day, 21:00:00 STD>)
Run Code Online (Sandbox Code Playgroud)

注意:此想法是在两个阶段发生的。首先,我想在TimeZone创作中保持领先地位。然后,我想向用户显示用户的TimeZone。在这种情况下,两个用户都是同一地区。

对不起我的英语


遵循@ user6897474的响应并将其付诸实践,我得到了以下解决方案:

在保存之前,我要获取POST和serializabel文件的日期时间,请执行以下操作:

class CheckControllerSerializer(serializers.ModelSerializer):
    def create(self, validated_data):
        datetime = validated_data['datetime'].replace(tzinfo=None)
        validated_data['datetime'] = pytz.timezone('America/Sao_Paulo').localize(datetime)

        return super(CheckControllerSerializer, self).create(validated_data)
Run Code Online (Sandbox Code Playgroud)

替换tzinfo = None,我保证您不会遇到以下错误的问题:

不是幼稚的日期时间(已经设置了tzinfo)

django django-models python-3.x python-datetime django-timezone

1
推荐指数
1
解决办法
1052
查看次数

AWS Chalice:多个 python 文件中的路由

我正在启动 AWS Lambda,并且爱上了 Chalice。据我了解,它与 Flask 具有相同的想法,但使用所有请求“无服务器”。我想将一个复杂的结构与几个 lambda 脚本文件放在一起。我找不到这样的例子。

\n\n

在此处的更新说明中,它说从 0.4 版本开始添加的内容似乎正是我正在寻找的内容。在这个例子中,它展示了如何从文件中提取数据从“chalicelib”文件夹

\n\n

遵循这个逻辑可以在“chalicelib”中创建多个文件夹,就好像每个文件夹代表我的应用程序的一个模块,并且在文件夹中每个文件将是带有一段源代码的路径?

\n\n
\n\n

我想知道这是否是一个可行的解决方案:

\n\n
app/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 requirements.txt\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 app.py\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 chalicelib\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 users\n    \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n    \xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 route.py\n    \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 controller.py\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 teams\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 __init__.py\n        \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 parameters.py\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 controller.py\n
Run Code Online (Sandbox Code Playgroud)\n\n

应用程序.py:

\n\n
import chalicelib\n
Run Code Online (Sandbox Code Playgroud)\n\n

chalicelib > __init__.py:

\n\n
from . import users, teams\n
Run Code Online (Sandbox Code Playgroud)\n\n

chalicelib > 用户 > __init__.py:

\n\n
from . import route\n
Run Code Online (Sandbox Code Playgroud)\n\n

chalicelib>用户>route.py:

\n\n
from app import app\nfrom . …
Run Code Online (Sandbox Code Playgroud)

aws-lambda chalice

1
推荐指数
1
解决办法
2535
查看次数