php - 让 PHP 脚本永远循环执行来自队列系统的计算作业

标签 php amazon-sqs

目前我有一个永久运行在我的服务器上的 perl 脚本,检查 SQS 以获取要计算的数据。这个脚本已经运行了大约 6 个月,从来没有出现过任何问题。

所以,现在我想切换到 PHP 的 CLI,让脚本永远循环。主要是因为我对 PHP 比较熟悉。

基本上,

$i="forever";
while($i==="forever"){
    doSomething();
    sleep(10);
}

脚本将执行 shell_exec("/shell_script.sh");最多可能需要 2 小时来处理。这会触发最大执行时间或类似时间吗?

这样做“可以”吗?如果没有,有什么选择?

最佳答案

您需要确保将脚本的最长执行时间设置为零,这样就不会施加时间限制。您可以从 PHP 文件执行此操作,

set_time_limit(0);

或者您可以在 php.ini 文件中设置它。 (有关更多信息,请参阅 set_time_limit 上的 PHP 手册)。除此之外,您的方法应该没问题。

然而,没有必要设置一个变量并检查它以永远循环,

$i="forever";
while($i==="forever")

您可以简单地执行 while(true)while(1)

关于php - 让 PHP 脚本永远循环执行来自队列系统的计算作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2977105/

相关文章:

php - MySql数据库版本控制系统

amazon-s3 - 如何修复 AWS CloudFormation 中的 "Unable to validate the following destination configurations"?

amazon-web-services - AWS-SDK : SQS How identify messages that were not deleted in BatchDeleteOperation

amazon-web-services - AWS 消息传递服务是否支持 STOMP?

php - 使用具有大值的 sprintf 追加零

java - 在codeigniter中修改时编辑下拉列表

php - PHP中的if语句结构

php - 缓存 PHP 数组

amazon-web-services - 在控制台中查看 SQS 消息会增加接收次数吗?

java - 使用 Amazon SQS 的多个消费者