【发布时间】:2024-06-21 04:40:01
【问题描述】:
我有一个 CakePHP 脚本,希望它可以由 cron 作业运行。它从命令行运行良好,但似乎不能从 cron 运行。 cron 行类似于:
*/2 * * * * cd /path/to/app;../cake/console/cake do_update
脚本本身——我认为这可能太古怪了,以至于抛弃了 cron——循环通过数据库中 Realtors 表的子集,使用系统时间来决定哪 50 个-记录要更新的数据库片段:
$realtors = $this->Realtor->find('all',array(
'conditions'=>array('Realtor.zone_id'=>1),
'order'=>array('Realtor.num DESC'),
'limit'=>50,
'offset'=>date("i")*25
));
所以我的问题是/是 - 我在这里做的任何事情显然会使 cron 工作陷入循环吗?而且,也许更重要的是,我在一个小时内将数据库拆分为可管理的块的方法是否疯狂? (我几乎是一个编程新手,所以我在不知道它们是否是好的做法的情况下尝试了很多东西。)任何人都可以提出一种更好的方法来通过 cron 循环和更新大量数据库记录,即防止单个查询太大而系统无法处理?
编辑:它不仅总是从命令行工作,它也可以在不同服务器上由 cron 脚本运行时工作。我想特定服务器上只是有些东西搞砸了,所以似乎有一个与代码相关的解决方案值得怀疑!我会从下面有用的 cron 相关见解中接受答案...
【问题讨论】: