2013-02-17 18 views
0

我有一台运行apache的windows pc,并且我需要一个php脚本来连续运行以收听来自UDP port的输入,并采取所需的操作并将其发送回去。在我的服务器上运行一个循环的PHP脚本

我知道如何做到这一点的唯一方法是为cmd安装curl,然后运行php script并使用WHILE loop。我担心的是,这是做错的方式,并且可能不可靠并占用大量的系统资源。

人们可以评论上述方法吗?我听说过cron ..但那只适用于unix?我能做什么?

+0

我听说这可以用Windows任务调度程序完成?但是这不允许你说每分钟都运行脚本。最糟糕的情况是,我必须在C#中编写我自己的调度应用程序:( – raaj 2013-02-17 18:15:05

回答

2

嘿试试下面的解决方案。 使用bat文件并计划执行该bat文件。

例如在bat文件executephp.bat,写这

c:\xampp\php\php.exe -f c:\xampp\htdocs\do_something.php 

保存包含行bat文件。

转到Windows调度程序,并创建一个新的任务,并在操作选项卡中,浏览指向该executephp.bat和开始 - >直接到目录你有executephp.bat。

例如如果u将文件保存C:\xampp\htdocs下提出,在开始C:\xampp\htdocs英寸

记住调用即使不登录的用户脚本。

一切都设置好了,它会毫无问题地执行。

+0

我有一个问题。有没有一种方法可以调用打开的文件?用另一个系统的url链接说。一旦用户调用它,它会以某种方式执行批处理文件..? – raaj 2013-02-18 04:02:47

+0

我不知道在那... – 2013-02-18 04:26:32

0

Apache后面的PHP脚本始终有最大执行时间,因此应该在特定的超时后总是停止使用循环。

您应该更好地使用cron或像Venkat这样的批处理脚本。有一些很棒的cron服务,它会向服务器发出GET请求并运行脚本。看看这个相关的线程:Scheduled Request to my website from an external source

这不符合您的需求?

+0

任何想法它持续多久?我总是可以计时并重新打开它,但我想知道它持续多久无论如何 – raaj 2013-02-18 04:00:59

+0

在这里看一下PHP中的['max-execution-time'](http://www.php.net/manual/en/info.configuration.php#ini.max-execution-time),它默认是30秒,对于Apache来说:''Apache有一个Timeout指令,IIS有一个CGI超时函数,默认为300秒。“' – ConcurrentHashMap 2013-02-18 18:55:38

相关问题