在CloudFoundry上运行Supervisor

时间:2018-04-30 13:42:00

标签: laravel background-process cloudfoundry supervisord swisscomdev

有没有办法在CloudFoundry的php-buildpack中安装一个运行Supervisor

我有一个Laravel应用程序,并且某些受监控的后台进程无法在queued jobs上运行。

我可以使用apt-buildpack安装supervisor,但是当我不想用supervisord -c supervisord.conf启动主管时,我收到以下错误:

Traceback (most recent call last):
File "/home/vcap/deps/0/bin/supervisorctl", line 5, in <module>
from pkg_resources import load_entry_point
ImportError: No module named pkg_resources

这是我的supervisord.conf:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/vcap/app/artisan queue:work --tries=3
autostart=true
autorestart=true
user=vcap
numprocs=2
redirect_stderr=true
stdout_logfile=/home/vcap/app/storage/logs/worker.log

1 个答案:

答案 0 :(得分:0)

不要使用supervisord,Cloud Foundry不需要。该平台完成了supervisord在这里为您做的一切。

要使用该平台,您有两种选择:

  1. 推送您的普通网络应用。为您的工作进程推送第二个应用程序。您可以通过运行cf push两次或using an application manifest.yml file that describes both apps

  2. 来执行此操作
  3. 您可以使用新的cf v3-push功能并使用Procfile。您可以拥有一个web和一个worker流程。这与选项#1类似,但最终会有一个应用程序在该应用程序下有两个进程。请参阅here for details

  4. 这些选项的好处是该平台可以处理有关您的应用的所有内容。它启动它,它看着它,它重新启动它,如果有问题,它甚至可以扩展它。没有别的东西可以安装或配置。

    希望有所帮助!