当前位置: 首页 > 面试题库 >

mysql更改时调用推送程序

商勇
2023-03-14
问题内容

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。

7年前关闭。

mysql在没有管理员交互的情况下,如何将数据库更改推送到管理员屏幕pusher

可以pusher运行某种侦听器来更改,mysql还是可以pusher简单地进行某种奇特的轮询?

总而言之,如何编码这样的设置?

一个简单的例子或链接将不胜感激。


问题答案:

War️ 交战! 这可能会导致数据库变慢。给定每个插入的sys
exec’curl,这将引入相对较差的性能。最好还有一个触发器将消息写入另一个表,并让另一个进程在循环中检查新行。

MySQL使通过存储过程将代码包装到易于访问的 TRIGGERS中
变得简单。您可以使用pusher创建类似的内容,而我知道如何使用PubNub进行创建。因此,这里是PubNub和MySQL的快速指南。您追求的就是简单,这就是您的解决方案!我将引导您通过一种简单的方法,将表上的所有
UPDATEINSERTDELETE
操作绑定到每次都会被调用的存储函数,并使用PubNub轻松地向您的移动和Web应用发送推送通知。

PubNub推送消息

DELIMITER $$
CREATE PROCEDURE push_message
(p1   DOUBLE,
 p2   DOUBLE,
 p3 BIGINT)
BEGIN
 DECLARE cmd CHAR(255);
 DECLARE result CHAR(255);
 SET cmd = CONCAT('curl https://pubsub.pubnub.com/publish/demo/demo/0/mysql_triggers/0/%22',p1, ',' ,p2, ',' ,p3,'%22');
 SET result = sys_eval(cmd);
END$$;

注意:确保您的过程类型是正确的 DOUBLEVARCHARTEXT

MySQL触发代码INSERT示例

CREATE TRIGGER push_message_trigger AFTER INSERT ON your_table_name_here
FOR EACH ROW
CALL push_message(NEW.Column1, NEW.Column2, NEW.Column3);

注意:确保在推送消息中包括此处需要的列。

MySQL触发器代码更新示例

CREATE TRIGGER push_message_trigger AFTER UPDATE ON your_table_name_here
FOR EACH ROW
CALL push_message(NEW.Column1, NEW.Column2, NEW.Column3);

通过调试控制台监视推送消息

http://www.pubnub.com/console?sub=demo&pub=demo&channel=mysql_triggers-您可以观看通过PubNub
Dev Console触发的触发器。这样,您就可以了解需要更改哪些参数,以及哪些数据对您很重要,以便将它们包含在PubNub
websocket可以接收的每个推送通知中,以及在移动和Web设备上的更多通知。

用JavaScript接收推送消息

<div id=pubnub ssl=on></div>
<script src=//pubnub.a.ssl.fastly.net/pubnub-3.4.5.min.js></script>
<script>(function(){

    PUBNUB.init({
        subscribe_key : 'demo',
        ssl           : true
    }).subscribe({
        channel  : 'mysql_triggers',
        callback : function(mysql_trigger_details) {
            alert(mysql_trigger_details);
        }
    });

})();</script>

现在,您已经具有通过简单的过程直接从MySQL 发送和接收 更改事件
所需的步骤。还有一些方法可以优化此方法,例如向守护程序进程发出信号,该进程对HTTPS推送通知进行排队和缓冲。这应该足够高效。



 类似资料:
  • 假设我有一个Android应用程序,它使用从随机REST API获取的内容构建一个ListView。 想象一下,现在我需要在API上有新内容可用时发送推送通知。最简单的方法是什么? 对于Android上的推送通知流程,我有点摸不着头脑。我看了一下Firebase,但我不知道我是否需要在Firebase上建立一个数据库,在API提供新内容时存储结果,然后在数据库更新时触发通知,或者我不需要数据库等等

  • 我可以提交大量更改,但没有任何内容可以进入 github。 只有当我从菜单中手动单击 PUSH 函数时,它才会推送到 github。 如何让它在提交时自动执行此操作? 这些是我的VS GIT设置:

  • 我想更改Git默认远程分支目标,这样我就可以 而不是: 目前它被设置为源遥控器,我想把它设置为不同的遥控器。 我试图删除原来的(克隆的)遥控器 这确实删除了原始遥控器。但不能解决 问题。我仍然得到: 致命:没有配置的推送目标。从命令行指定 URL ,也可以使用以下命令配置远程存储库: 我还试着玩: 和其他选项,但似乎都不起作用(可能是因为我太快删除了源远程?) 按照这里的答案,我试图改变: 但两者

  • 当应用程序在后台时,如何更新包含数据负载的Firebase推送通知?有没有办法在通知中指定通知id给Firebase API? 完整的项目在github https://github.com/akshatashan/FireBaseCloudMessagingDemo中

  • 问题内容: 环顾四周,但找不到一个示例。没有解释文档,我无法弄清楚。 如何修改文件(例如,README.md),为修改后的文件创建提交,然后将提交推送到服务器? Nodegit:http ://www.nodegit.org/ Nodegit文档:http ://www.nodegit.org/nodegit 问题答案: 有一个示例,说明如何在其存储库上创建/添加和提交,可以帮助您修改文件。 ht

  • 本文向大家介绍Git 将本地更改推送到SVN,包括了Git 将本地更改推送到SVN的使用技巧和注意事项,需要的朋友参考一下 示例 命令 将为您的每个本地git提交创建SVN修订版。与SVN一样,您的本地git历史记录必须与SVN信息库中的最新更改同步,因此,如果命令失败,请尝试先执行git svn rebase。