当前位置: 首页 > 知识库问答 >
问题:

无法获取artisan队列:在Elastic Beanstalk(Laravel/Redis)上与主管一起处理作业

梁丘波
2023-03-14

我们正在尝试使用Laravel Artisan守护进程队列侦听器处理Redis队列。

每次通过SSH登录到一个EC2服务器时,直接运行命令php/var/app/current/artisan queue:work--trytes=3都非常有效。但是,当通过主管运行此命令时,不会发生任何事情。

在我们的. eb扩展名文件夹中,我们有一个脚本文件,其中包含将我们的主管配置复制到机器上的文件夹所需的以下配置:

    01-migration:
        command: "php /var/app/ondeck/artisan migrate --force && php /var/app/ondeck/artisan db:seed --force"
        leader_only: true

    02-supervisor:
        command: "mkdir -p /etc/supervisor/conf.d/ && cat eb/laravel-worker.conf > /etc/supervisor/conf.d/laravel-worker.conf && cat eb/supervisord.conf > /etc/supervisor/conf.d/supervisord.conf && mkdir -p /var/log/supervisor/ && touch /var/log/supervisor/supervisord.log"

拉威尔工人。形态

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/app/current/artisan queue:listen --tries=3
autostart=true
autorestart=true
user=webapp
numprocs=5
redirect_stderr=true
stdout_logfile=/var/app/current/storage/worker.log

我们可以看到正在创建的流程:

正在运行的进程的屏幕截图

我们也看不到日志文件(worker.log)中发生的任何事情。

共有1个答案

祁坚壁
2023-03-14

在GitHub上找到Liveofguenter的配置后,我们注意到主管无法读取我们的环境变量。

这句话启发了我们:

# make sure elasticbeanstalk PARAMS are being passed through to supervisord
. /opt/elasticbeanstalk/support/envvars

资料来源:https://gist.github.com/lifeofguenter/f8ea93f10a403807a719

 类似资料:
  • 问题内容: 队列侦听器未在服务器上启动,某些作业已推送(使用Redis驱动程序)。 我该如何计算(或获得全部)这些论文工作?我没有找到任何工匠命令来获取此信息。 问题答案: 如果有人还在这里寻找答案,那是我的方法: 是Redis连接名称,默认情况下为空,并且是队列/管道的名称,默认情况下为“默认”!

  • 问题内容: Python的多处理程序包中的队列和管道之间的根本区别是什么? 在什么情况下应该选择一种?什么时候使用比较有利?什么时候使用比较有利? 问题答案: A只能有两个端点。 一个可以有多个生产者和消费者。 何时使用它们 如果您需要两个以上的交流点,请使用。 如果您需要绝对的性能,那么a会更快,因为它建立在之上。 绩效基准 假设您要生成两个进程并在它们之间尽快发送消息。这些是使用和进行类似测试

  • 使用MQ Explorer创建新的队列管理器后,它无法正确启动,并提供以下消息: 命令:“C:\Program Files(x86)\IBM\WebSphere mq\bin\crtmqm”-sa test_qm 队列管理器与安装“WMQ75Install”相关联。 exitvalue=2059 我不知道如何从日志中解决它,并试图从MQ Explorer和命令行shell中手动启动它,但没有任何成

  • 我有一个前端和管理区域。前端使用Laravel的包,对于我使用的是admin,所有视图、控制器和模型都在目录下。 我正在尝试使用相同的角色和权限模型为前端和管理员用户设置角色和权限。为此,我创建了以下表格 管理员 问题是:我可以使用belongtomany()为前端用户获取角色,但不能为管理员获取角色。这是代码。 我已将角色管理的关系设置为管理模型,该模型之前被错误地放置在用户模型中。

  • 我有一个spring boot rabbitmq应用程序,其中我必须将一个Employee对象发送到队列中。那么我已经设置了一个侦听器应用程序。对employee对象进行一些处理,并将此对象放入回调队列中。 为此,我在应用程序中创建了以下对象。 null 我的应用程序文件如下所示。 应用程序.属性 MainClass.java EmployeeResponseReceiver. 问题是每当我启动我

  • 编辑:Redis+Sidekiq完成该工作。在这里,Redis作为一个消息队列工作,Sidekiq在后台处理这些消息。我很想知道,选择一个显式代理(如RabbitMQ、SQS、Redis PubSub)而不是Redis+SideKiQ有什么用例和好处?