【问题标题】:Zend_Log in background - possible?Zend_Log 在后台 - 可能吗?
【发布时间】:2012-09-22 05:54:20
【问题描述】:

我的Zend_Log 编写者正在将数据发送到第三方资源,例如 Amazon DynamoDB。这样的操作需要时间,我想在后台进行。我尝试使用pcntl_fork(),但它不能与 Apache 一起正常工作。对于如何在 PHP 和 Zend Framework 中并行执行日志记录操作,您还有其他想法吗?也许有一些例子?

编辑:我知道一个明显的解决方案是将日志消息保存到一些文件/队列中并稍后推送它们,但这不是我在这个问题中寻找的。​​p>

【问题讨论】:

  • 把它放在一些本地队列中,有时将物品发送到亚马逊
  • 将基本信息存储在平面文件中,然后继续您的常规流程。安排一个 Cronjob(每 X 分钟,基于您的日志队列),它将使用 Amazon 服务处理这些日志并清除已处理的日志。每个 cronjob 将作为一个单独的进程运行。
  • .. 那你在找什么? PHP 是单线程的,分叉仍然需要某种形式的队列来处理或 IPC(即平面文件或共享内存)。

标签: php zend-framework logging zend-log


【解决方案1】:

这个问题的正确解决方案是依赖syslogZend_Log_Writer_Syslog。 Syslog 将日志客户端与实际的日志写入者(到任何第三方资源)分离。 Amazon 的写入器必须作为 syslog 服务器端配置的一部分进行配置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-15
    相关资源
    最近更新 更多