gpt4 book ai didi

php - Python 和 PHP 的异步日志记录策略

转载 作者:可可西里 更新时间:2023-11-01 01:07:21 30 4
gpt4 key购买 nike

情况是这样的:我们有一堆 python 脚本不断地做事并最终在 mysql 中写入数据,我们需要一个日志来分析错误率和脚本性能。

我们还有与 mysql 数据交互的 php 前端,我们还需要记录用户操作,以便我们可以分析他们的行为,并计算一些评分函数。所以我们想到了每个案例都有一个 mysql 表(一个用于“python 脚本”日志,一个用于“用户操作”日志)。

理想情况下,出于性能和低延迟的原因,我们将异步写入这些日志表。有没有办法在 Python(我们使用 django ORM)和 PHP(我们使用 Yii Framework)中做到这一点?

有没有更好的方法来解决这个问题?

更新: 对于用户操作(Web UI),我们现在正在考虑通过简单的 Apache 配置自动将 Apache 日志和相关 session 信息加载到 mysql

最佳答案

(据我所知)只有两种方法可以在 PHP 中异步执行任何操作:

  • fork 进程(需要 pcntl_fork )
  • exec()一个进程并通过(假设 *nix)将 >/dev/null & 附加到命令字符串的末尾来释放它。

这两种方法都会导致创建一个新进程,尽管是暂时的,因此这是否会带来任何性能提升是值得商榷的,并且在很大程度上取决于您的服务器环境 - 我怀疑这会使事情变得更糟,而不是更好。如果您的数据库负载非常重(因此导致您变慢的事情),您可能会通过将日志消息转储到文件并使用一个守护进程脚本来爬取进入数据库的东西来获得更快的结果 - 但同样,这是否有帮助值得商榷。

Python supports multi-threading这让生活变得更轻松。

关于php - Python 和 PHP 的异步日志记录策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7852073/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com