是否有一个forever.js等价的PHP来连续运行我的脚本?

Juj*_*ngh 14 php node.js forever

我偶尔会使用forever.js快速而脏地将CLI类型的Node.js应用程序部署到生产环境,在那里我不想进行完整的supervisord部署.

我想知道是否有PHP的等价物?目前我们有一个队列处理系统,它从SQS获取消息并将它们同步处理到数据库中(它不能完成异步,因为在这个特定的用例中会导致各种令人讨厌的行锁定问题.)目前它使用cron运行时间很短,但它经常提前结束,我希望它再次开始运行.我不能一次运行多个进程.

欢迎任何*nix命令/软件/ bash类型的想法.

She*_*tJS 28

只需使用forever您的PHP脚本(使用-c参数指示永远使用php):

$ cat test.php
<?php
sleep(3);
print("foobar\n");
exit;
?>
$ forever -c php test.php
foobar
error: Forever detected script was killed by signal: null
error: Forever restarting script for 1 time
foobar
error: Forever detected script was killed by signal: null
error: Forever restarting script for 2 time
...
Run Code Online (Sandbox Code Playgroud)

  • @ Ma'moonAl-Akash屏幕不适合这个,[nohup](https://en.wikipedia.org/wiki/Nohup).无论如何,作为守护进程永远运行脚本使用启动操作,如下所示:`forever start -c php mysqcript.php`.确保为永远实例和脚本的STDOUT/STDERR指定日志文件,如下所示:`forever start -a -l /path/to/myscript_forever.log -o /path/to/myscript_out.log -e/path/to/myscript_err.log -c php myscript.php` (6认同)
  • 神圣的垃圾真的?棒极了! (2认同)
  • 顺便说一句,事实证明`forever -c`并没有将脚本放在后台,我必须使用屏幕来执行此操作,类似于`screen forever -c php myscript.php`并将其分离以运行"永远"! (2认同)