Laravel在Forge服务器上连续运行过程



在以前内置的codeigniter内置的应用程序中,我在服务器上放了一个脚本,看起来像这样:

#!/bin/sh
while true
do
        php /var/www/html/index.php nameOfController nameOfScript
        sleep 1
done

然后我将使用nohup scriptname进行运行。

我想知道您如何为Laravel应用程序做到这一点。它将在Digitalocean上托管并通过Forge部署,但我认为这不会有任何区别。

laravel的脚本会一样吗?由于我还没有生产,所以我想知道是否有人在设置这样的脚本方面有经验。

update

我想以这种方式运行它的原因是因为这是一个在加密交易所交易的脚本。有时(由于质量低下...(脚本将需要1秒钟,但有时需要15秒。如果我使用一个cronjob说每1秒说一次,并且该脚本仍在1秒后运行,则Cron作业将使它再次运行而不会完成(这对应用程序至关重要(。因此,我希望一个脚本一遍又一遍地继续运行相同的功能,但不要在设定的时间间隔内进行。

如果您使用的是与锻造中的Laravel集成的Swoole,则可以做一个毫秒的Cron工作。

如果您不使用Swoole,则可以将程序放入Forge supervisord.conf文件中:

[program:schedule]
command = bash %(ENV_APP_DIR)s/schedule.sh
stdout_logfile = /dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile = /dev/stderr
stderr_logfile_maxbytes=0
user = root
autostart = true
autorestart = true
priority = 500

and sheped.sh

#!/bin/bash
while true; do
    php artisan yourcommand
    sleep 5
done

,但绝对毫无疑问,毫无疑问的cron工作是一种更好的管理方法,因为您对时间和执行有更多的控制。