【问题标题】:How can I setup a message/notification service within pyramid?如何在金字塔中设置消息/通知服务?
【发布时间】:2012-07-14 12:43:28
【问题描述】:

我是网络开发的新手,我正在设法完成一个金字塔网站,但我想拥有某种消息服务,但不知道从哪里开始。

我想要 Quora 或 stackoverflow 之类的东西,将来自站点的警报发送给用户(也许他们可以互相发送消息)。我需要做什么?是否有一个库或教程可以帮助我理解所涉及的所有内容,或者我只是为消息创建一个数据模型并为此查询数据库?我想要一种允许用户跟踪其他用户的活动并相互交流的方法,我不想重新创建电子邮件。

有没有一种适当的简单方法可以与金字塔一起使用?

更新:我找到了一些资源,我想我知道了。了解是否有更普遍接受的方法会很棒,但我想我可以创建这个结构并每隔 x 秒查询一次新消息:

CREATE TABLE `messages` (
`message_id` int(11) NOT NULL auto_increment,
`from_user` varchar(65) character set latin1 collate latin1_general_ci NOT NULL,
`to_user` varchar(65) character set latin1 collate latin1_general_ci NOT NULL,
`message_title` varchar(65) NOT NULL,
`message_contents` longtext NOT NULL,
`message_read` int(11) NOT NULL default '0',
PRIMARY KEY (`message_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=21;

【问题讨论】:

  • 通过“消息”和“警报”-您是指即使没有用户刷新页面也会出现在 SO 上的实时通知?方程“此问题的 1 个新答案,单击此处加载答案”?或者你对这方面不感兴趣,只是想要一些更静态的东西,比如 phpbb 论坛的“个人消息”功能?
  • @Sergey 我对学习如何创建后端消息系统更感兴趣。我认为客户端javascript可以实现您描述的差异以继续检查或推送到浏览器?理想情况下,我希望它是实时的。

标签: python pyramid


【解决方案1】:

你得到了基本的想法:你只需要一个表来存储消息。只要不处理广播消息,一个表就足够了。

关于您提出的结构的一些问题:

  • 如果你还不知道,你应该看看sqlalchemy。它是处理数据库的好工具,通常与金字塔一起使用。
  • 您应该为from_userto_user 使用用户表中的键,而不是存储名称以避免浪费空间。
  • 如果您的应用程序应该处理多个请求,您应该考虑在某些列上建立索引,具体取决于您执行的查询。如果您经常查询某个用户的所有消息,请在from_user 上进行索引。如果您查询来自某个用户的所有未读消息,请在 from_usermessage_read (how to do it in sqlalchemy) 上使用复合索引。这应该会大大加快您的请求速度。

【讨论】:

    猜你喜欢
    • 2017-06-02
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多