作为Windows服务不断运行PHP脚本

问题描述 投票:-1回答:3

我有一个PHP脚本,用于轮询数据库,检查新条目,如果找到新条目,则向iOS设备发送推送通知。

我目前已设置php脚本,因此,如果您不断刷新页面,它将满足我的要求。我还可以设置php或javascript刷新,只打开页面,但是如果我使用的是远程服务器,并且无法告知打开了哪些程序或何时重新启动,那将不会很有效。

我以为Windows服务将是解决我的问题的最佳解决方案,但是我不确定如何将php脚本编译成Windows服务。

有人有什么建议吗?最坏的情况是,我想我可以用C#编写所有内容,并以此来制作Windows服务,但是我敢肯定有一种更简单的方法。

php windows service
3个回答
0
投票

尝试使用Windows Task Scheduler。它不像Unix系统上的cron那样强大,但可以为您提供帮助。在这里您可以找到有关它的更多信息How to run a PHP file in a scheduled task (Windows Task Scheduler)

如果可以从Web访问脚本,则可以将Windows Task Scheduler与wget一起使用,例如,使用下一个路径创建新任务:wget.exe -O--q -t 1 http://www.your-site.com/cron.php。当然,您必须将wget安装到本地服务器。


0
投票

我的解决方案是使用程序FireDaemon(AlwaysUp是替代方法)。我将PHP手动安装到C:\ PHP并设置了要运行的任务

C:\PHP\php.exe C:\pathtophp\file.php

0
投票

在Windows中

您可以使用nssm.exe(非吸吮服务管理器)。在此处下载https://nssm.cc/

首先,创建轮询数据库的php脚本:

<?php

/// script.php

while(true){
   //do some stuff here

   sleep(5); //wait for 5 seconds 
}

?>

然后在控制台中输入此命令

nssm.exe install <service-name>

此后,在Nssm服务安装程序中

  1. 在路径字段中,写入php.exe的路径
  2. 在启动目录中,输入您的php脚本或工作目录的位置
  3. 最后,在参数字段中,写入script.php

然后单击按钮安装服务。您现在可以在windows service

中检查您的服务
© www.soinside.com 2019 - 2024. All rights reserved.