与crontab执行后台任务的方式相比,在php上编写一个守护进程(它监听/处理队列)是否如此耗费内存?Memcacheq vs cronjob在内存消耗方面
我在一台服务器下有一个〜600个商店。有些任务店主运行需要很多时间,所以分叉它们是合理的。把任务放到cron中效果很好,我只是不喜欢延迟59秒(限制cron)。所以我想尝试队列系统。我只是害怕它会迫使我运行600个PHP线程来监听/处理这些队列(商店来自不同的客户,我无法制作一个通用的守护进程)。它不会自动需要大约600-1000MB的内存,与cron相比,它不是一个好的选择(只有在计划时才加载进程)。
感谢你们让我清醒:)好吧,“at”对我来说是新东西,而我曾经使用过“nohup”。在这种情况下,“nohup”有什么不同?因为exec(“nohup php mytask.php”)看起来比exec更简单(“echo'php mytask.php'| at now”); – 2012-02-05 19:50:42
nohup表示当用户运行注销时,该进程不会被终止;它本身并不足以解决你的问题,但如果你添加一个&符号(使nohup任务在后台运行),它可能会工作。所以这会让你'exec(“nohup php mytask.php&”) 另请参阅:http://en.wikipedia.org/wiki/Nohup – Daan 2012-02-05 20:16:47
谢谢大安,我忘了添加&,是那些命令现在相当于? – 2012-02-06 06:49:41