Python的任意同步日志记录策略&;PHP
情况是这样的:我们有一堆python脚本不断地做一些事情,并最终在mysql中写入数据,我们需要一个日志来分析错误率和脚本性能 我们还有与mysql数据交互的php前端,我们还需要记录用户的行为,以便我们可以分析他们的行为,并计算一些评分函数。 因此,我们考虑为每种情况设置一个mysql表(一个用于“python脚本”日志,一个用于“用户操作”日志) 理想情况下,出于性能和低延迟的原因,我们将异步写入这些日志表。在Python(我们使用的是ORM)和PHP(我们使用的是ORM)中有这样做的方法吗 有没有更好的方法来解决这个问题 更新: 对于用户操作(Web UI),我们现在正在考虑通过简单的Apache配置自动将Apache日志加载到mysql中,并提供相关的会话信息。在PHP中,只有两种方法(AFAIK)可以同步执行任何操作:Python的任意同步日志记录策略&;PHP,php,python,logging,asynchronous,queue,Php,Python,Logging,Asynchronous,Queue,情况是这样的:我们有一堆python脚本不断地做一些事情,并最终在mysql中写入数据,我们需要一个日志来分析错误率和脚本性能 我们还有与mysql数据交互的php前端,我们还需要记录用户的行为,以便我们可以分析他们的行为,并计算一些评分函数。 因此,我们考虑为每种情况设置一个mysql表(一个用于“python脚本”日志,一个用于“用户操作”日志) 理想情况下,出于性能和低延迟的原因,我们将异步写入这些日志表。在Python(我们使用的是ORM)和PHP(我们使用的是ORM)中有这样做的方法吗
- 分叉过程(需要)
- 一个进程,并通过(假设*nix)在命令字符串的末尾追加
来释放它>/dev/null&
这使生活变得更加轻松。您可以打开原始Unix或网络套接字,将消息缓存到日志服务,并将其异步写入磁盘或数据库。如果您的PHP和Python进程是长时间运行的,并且每次执行都会生成许多消息,那么保持一个打开的套接字将比同步发出单独的HTTP/数据库请求更有效
您必须将其与附加到文件(打开一次,然后在运行时锁定、查找、写入和解锁,最后关闭)进行比较,以确定哪个更快。通过独立HTTP服务器进行日志记录如何?@jaz-我希望附加到日志文件比发送HTTP请求更快。+1-我忘记了非阻塞套接字,对于非阻塞文件流,这可能也会起作用(至少在PHP中,Py并不是我的专长)。