如何使用PHP在xampp上运行守护进程?

时间:2018-06-07 03:37:15

标签: php xampp daemon

我有一个XML数据库,我想独立于我网站上的用户进行管理。考虑到这个问题,似乎我应该编写一个守护进程脚本来管理我的数据库。这一切都很好,但是,我觉得我打开了一堆蠕虫。我想用PHP编写我的守护进程脚本,所以我查看了PCNTL。但我很快就知道PCNTL不适合Web服务器。所以现在我很难过。如何在我的服务器上运行守护进程?我需要学习另一种语言吗?我只想写自己的脚本。但我感到迷茫。我更喜欢用PHP编写我的守护进程,因为我熟悉这种语言。

我一直在研究PCNTL,CLI,SO问题,关于守护程序进程的大量文章......等等。

我在Apache上运行PHP 5.6.32(cli),Windows 7。 XAMPP 5.6.32。 Unix系统。

编辑:我也有Windows设置从命令提示符运行PHP。

1 个答案:

答案 0 :(得分:1)

运行PHP守护程序没有任何问题,但这并不是最快的,特别是在7.0版本之前。您可以通过两种方式继续:

  • 使用CREATE TABLE `annonce` ( `annonce_id` INT(11) NOT NULL AUTO_INCREMENT, `annonce_id_externe` VARCHAR(70) NOT NULL, `provenance_id` INT(11) NOT NULL, `categorie_id` INT(11) NOT NULL, PRIMARY KEY (`annonce_id`), UNIQUE INDEX `id_externe_par_provenance_et_categorie` (`annonce_id_externe`, `provenance_id`, `categorie_id`), INDEX `provenance_id` (`provenance_id`), INDEX `annonce_id_externe` (`annonce_id_externe`), INDEX `categorie_id` (`categorie_id`), CONSTRAINT `annonce_categorie_id` FOREIGN KEY (`categorie_id`) REFERENCES `categorie` (`categorie_id`) ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT `annonce_provenance_id` FOREIGN KEY (`provenance_id`) REFERENCES `provenance` (`provenance_id`) ON UPDATE CASCADE ON DELETE CASCADE, ) ,如果你在Unix系统Cron Jobs下就可以了,这样你就可以指定系统内的间隔自动执行指定的脚本,然后退出。
  • 真正的守护进程,首先需要将PHP.ini中的crontab更改为0(无限),然后在第一个函数max_execution_time的守护进程调用中,记住只运行一次。但是,如果有一些失败,例如抛出的错误未被捕获,则脚本将退出,您需要再次手动打开它,并且不要尝试...捕获while循环,因为它可能会进入无限循环。使用set_time_limit(0);执行脚本。