我有一个PHP脚本,用于轮询数据库,检查新条目,如果找到新条目,则向iOS设备发送推送通知。
我目前已设置php脚本,因此,如果您不断刷新页面,它将满足我的要求。我还可以设置php或javascript刷新,只打开页面,但是如果我使用的是远程服务器,并且无法告知打开了哪些程序或何时重新启动,那将不会很有效。
我以为Windows服务将是解决我的问题的最佳解决方案,但是我不确定如何将php脚本编译成Windows服务。
有人有什么建议吗?最坏的情况是,我想我可以用C#编写所有内容,并以此来制作Windows服务,但是我敢肯定有一种更简单的方法。
尝试使用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安装到本地服务器。
我的解决方案是使用程序FireDaemon(AlwaysUp是替代方法)。我将PHP手动安装到C:\ PHP并设置了要运行的任务
C:\PHP\php.exe C:\pathtophp\file.php
在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服务安装程序中
php.exe
的路径script.php
然后单击按钮安装服务。您现在可以在windows service