小编saa*_*lin的帖子

Android设备偶尔会重启

我们正在真实设备上测试我们的Android应用程序,并注意其中一些应用程序运行2-3小时后偶尔会重新启动.该应用程序包含一个具有3个线程(具有GPS和网络)的服务和两个活动,其中一个是耗费资源的(显示地图)

Logcat没有帮助,因为我们在设备重启之前没有看到任何重要消息.有时设备甚至无法启动,只有电池拆卸有助于再次启动它.

这些设备基于不同的硬件,在不同国家(主要是PRC,hehe)生产,并使用不同的Android版本.

有哪些可能导致设备重启的最常见问题是什么?

debugging android

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

一次写入只读字段

我们需要使用SQLAlchemy/Elixir实现一次写入(在对象创建时)只读字段.

一个快速而肮脏的解决方案:

class User(Entity):
    # some fields ...    
    _created    = Field(DateTime, default=datetime.utcnow)
    @property
    def created(self):
        return self._created
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法(例如,使用插入前触发器?)

python sqlalchemy

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

django:在 transaction.atomic() 内提交和提升

我们正在尝试从 to 迁移commit_manuallyatomic以便我们可以在遗留项目中将 Django 升级到至少 1.8。在大多数情况下,我们需要做这样的事情:

with transaction.atomic():
    obj = Entity.objects.select_for_update().get(pk=pk)
    try:
        obj.do_something()
        obj.set_some_status()
        obj.save()
    except SomeException:
        obj.set_failed_flag()
        obj.save()
        raise
Run Code Online (Sandbox Code Playgroud)

因为被调用者需要这个异常信息才能继续特定的流程。但在这种情况下,事务/保存点将被回滚,这不是我们想要的,因为我们想要obj.set_failed_flag()提交。此外,将它设置在同一个原子块中似乎是合乎逻辑的,因为我们已经为这个对象锁定了一个行。

任何想法/模式?提前致谢!

PS 使用旧的手动事务管理非常简单!

PPS 我们也将例外用于“提前退出”,并且移动到某些标志等会带来混乱的日志,我个人很想避免它。

python django transactions django-orm

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