Nextcloud cron.php 计时

Nextcloud cron.php 计时

作为Nextcloud 官方文档推荐之后,我开始使用一个cron.php每 15 分钟调用一次的系统。该调用被包装在一个程序中,该程序通过电子邮件向我报告错误,并强制在执行时超时 2 分钟cron.php

有时达到超时,包装器会发送信号终端cron.php和平退出-无需SIGKILL。

在执行此操作时,它不会打印任何内容 - 甚至不会打印到 Apache error.log。每当我检查管理界面时,它都会报告 Cron 最近已执行。该问题大约每周发生一次。

顺便说一句,在切换到 Nextcloud 之前我已经遇到过这种情况。

两分钟的超时时间是不是太短了?还是说这是个 bug?我该怎么办?

答案1

您是否尝试过在日志中激活 DEBUG 级别一段时间?请查看 https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/logging_configuration.html#log-level 并将级别设置为0。

然后,您应该会看到描述其操作的 cron 选项卡,并且可以对各种作业进行计时。以下是日志的摘录(摘自 NC 版本 9,因为自从迁移到 13 以来,我不需要执行这样的分析,但格式应该类似)。

{"reqId":"6wulvcxV3RGWrlto+5V0","re​​moteAddr":"","app":"cron","message":"运行 ID 为 16 的 OCA\User_LDAP\Jobs\CleanUp 作业","level":0,"time":"2018-11-08T21:30:02+00:00","method":"--","url":"--","user":"--","version":"9.1.5.2"} {"reqId":"6wulvcxV3RGWrlto+5V0","re​​moteAddr":"","app":"cron","message":"已完成 ID 为 16 的 OCA\User_LDAP\Jobs\CleanUp 作业16","级别":0,"时间":"2018-11-08T21:30:02 + 00:00","方法":"--","url":"--","用户":"--","版本":"9.1.5.2"}

您可以使用“app”:“cron”值过滤消息,并使用“reqId”分隔请求,然后计算“运行”和“完成”之间的作业持续时间。

最后要说的是,我的 NC 实例以 GB 为单位,而 cron 作业可以持续超过 2 分钟。一些应用程序(保留)也确实需要 SQL 优化,否则作业将持续很长时间。

欢呼,hj

相关内容