function
当UPDATE
MySQL 数据库中发生使用 Unix 信号之类的事件时,我可以调用或通知 C++ 应用程序SIGUSR1
吗?或者如何将 Unix 信号与 MySQL 触发器结合使用?
问问题
149 次
1 回答
1
不,没有办法做到这一点。MySQL 仅通过 MySQL 套接字连接进行通信。
无论如何,信号对于 IPC 来说非常糟糕:
- 您不能将任何复杂信息与信号一起传递;您通常仅限于信号编号和发送它们的进程的 PID。
- 它们与线程一起的行为定义不明确。
- 当你收到很多信号时会发生什么。(只有当它们能够携带复杂的信息时才会真正有用。)
- 它们可以中断系统调用,因此您最终可能不得不重试很多通常不需要的调用,并且最终可能会触发一些罕见的错误。
- 信号处理程序可以随时被触发,因此在信号处理程序中做很多事情是不安全的(最值得注意的是,任何可能调用的事情
malloc()
)。
基本上其他任何东西(套接字、管道、消息队列、网络链接......)都比信号好。
于 2013-08-17T06:23:42.453 回答