【问题标题】:running processes in background php在后台运行进程php
【发布时间】:2012-01-07 09:18:13
【问题描述】:

我很少有 cronjob 可以为我的站点汇总数据和验证数据。其中一些具有需要在后台运行的进程。

例子:

cronjob1.php execute cronjob2.php using exec

这个 cronjob2.php 使用exec 运行另一个 cronjob3.php,需要先完成 cronjob3,然后再完成 cronjob2,然后再完成 cronjob。

我目前遇到的问题是 cronjob1.php 需要 2 小时才能完成。

有没有更好的方法让它运行得更快?

谢谢

【问题讨论】:

  • CRON 的工作在做什么?我们很难判断它是否能跑得更快
  • 汇总数据并验证访客统计信息、产品统计信息 - 每次转化费用、每次点击费用、订单数量等...
  • 一些通用的建议,尝试与数据库建立持久连接,通过创建一些特定的索引来优化数据库,并尝试简化或优化脚本的逻辑
  • 我不使用持久连接,而且我有超过 100 个查询,我必须检查索引但是如何?
  • 我会是你,首先让你的脚本写一些带有时间戳的日志文件,这样你就可以知道代码的哪一部分是最慢的。当您知道哪些查询最慢时,您可以通过分析 where 部分的条件来创建一些索引。如果您有 100 个查询,则永久连接应该会有所帮助。

标签: php cron


【解决方案1】:

你可以做的事情很少:

  • 确保您的脚本使用永久连接,这样您就不会浪费时间连接和断开与数据库服务器的连接。
  • 实现一个日志机制,这样您就可以确定脚本的哪个部分运行缓慢,记录每个数据库查询所花费的时间是个好主意
  • 尽量优化你的数据库,你应该对慢查询使用解释并创建所需的索引。

【讨论】:

    【解决方案2】:

    如果 cronjob1 有许多数据库操作,而不是为此创建存储过程并对大多数使用的表字段进行索引

    这会提高您的 cronjob 性能....

    【讨论】:

      猜你喜欢
      • 2011-07-14
      • 2013-09-21
      • 1970-01-01
      • 2012-10-05
      • 1970-01-01
      • 2023-03-10
      • 2021-04-06
      • 2013-01-30
      相关资源
      最近更新 更多