【问题标题】:Python IRC bot + SQLAlchemy - track users in multiple channelsPython IRC bot + SQLAlchemy - 多渠道跟踪用户
【发布时间】:2012-10-19 12:19:47
【问题描述】:

我目前将 IRC 用户存储在字典中,使用他们的昵称作为“键”以便于检索。用户是从 SQLAlchemy 检索的,所以users['deepy'] 是一个 SQLAlchemy 对象,我会定期与我的数据库同步。

现在我遇到的问题是,在 IRC 上,人们可以在许多频道中,而我只是在跟踪一个。我需要关于如何改进这一点的建议。

我一直在考虑做几乎相同的事情,但也将频道的用户(作为列表)存储在字典中,并以频道名称作为键,例如:

{ '#two': ['reference to user9', 'reference to user62'], '#one': ['reference to user1', 'reference to user2'] }

对包含 SQLAlchemy 对象的用户字典的引用。

这是一个明智的做法吗?

我正在使用 Python 2.7、PostgreSQLSQLAlchemy 和 Twisted 的 irc.ircclient。

【问题讨论】:

    标签: python sqlalchemy twisted irc


    【解决方案1】:

    我发现最好存储尽可能少的 SQLALchemy 对象。存储大量 SQLAlchemy 对象会导致不得不担心同步问题并耗尽内存。

    我会跟踪用户名或用户 ID,而不是实际的用户对象:

    { '#two': ['bob1', 'tom2'], '#one': ['bob1', 'mary1'] }
    

    然后,每当我需要某个用户的信息时,我都会从数据库中获取它们。如果我只有几个用户并且需要经常访问他们,那么我会创建一个字典,将用户名映射到 SQLAlchemy 用户对象。

    【讨论】:

      猜你喜欢
      • 2018-03-08
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 2011-10-05
      • 1970-01-01
      • 1970-01-01
      • 2020-12-27
      • 2019-10-31
      相关资源
      最近更新 更多