繁体   English   中英

为 Amazon Beanstalk 上的 Laravel Queue Worker 提供环境变量

[英]Provide environment variables to Laravel Queue Worker on Amazon Beanstalk

所以我对邮件通知有这个奇怪的问题。 我在Amazon Elastic Beanstalk上进行了部署,我使用Amazon SQS作为排队服务。 对于邮件,我使用Mailgun 现在的问题是当邮件通知排队并处理它失败时。

这是有趣的部分,当我发送未排队的电子邮件通知时,它会正确发送,之后队列电子邮件也会发送一段时间,然后又开始失败。

我还向通知添加了SerializeModels特征。 但是,在我发送一封未排队的电子邮件之前,它不起作用。

我的User类也正确实现了routeNotificationForMail方法并返回用户的电子邮件。

有人遇到过类似的问题吗?

##编辑

所以我已经深入到问题所在,在systemd中运行的工作进程以某种方式无法从文件/opt/elasticbeanstalk/deployment/env转换或传输环境变量。 现在,当我在终端中运行它时,队列处理得很好。 但是当队列工作器重新启动时,什么都不起作用。

我现在用的是EnvironmentFile=/opt/elasticbeanstalk/deployment/envlaravel_worker.service

有谁知道我该怎么做?

所以经过跟踪和错误......在这里和那里敲我的头......解决方案非常简单。

我知道向tinker提供环境变量的命令,所以我创建了一个包含以下内容的 shell 脚本。


#!/bin/sh
cd /var/www/html && export $(cat /opt/elasticbeanstalk/deployment/env) && php artisan queue:work

脚本文件归 root 用户所有,所以我不必将sudocat一起使用

然后我通过systemd服务执行了脚本。

ExecStart=/usr/bin/nohup /var/www/html/worker_script.sh

通过.ebextenstions

files:
    /var/www/html/worker_script.sh:
        mode: "000755"
        owner: root
        content: |
            #!/bin/sh
            cd /var/www/html && export $(cat /opt/elasticbeanstalk/deployment/env) && php artisan queue:work


    /etc/systemd/system/laravel_worker.service:
        mode: "000755"
        owner: root
        group: root
        content: |
            # Laravel queue worker using systemd
            # ----------------------------------
            #
            # /lib/systemd/system/queue.service
            #
            # run this command to enable service:
            # systemctl enable queue.service

            [Unit]
            Description=Laravel queue worker

            [Service]
            EnvironmentFile=/opt/elasticbeanstalk/deployment/env
            Restart=always
            ExecStart=/usr/bin/nohup /var/www/html/worker_script.sh

            [Install]
            WantedBy=multi-user.target


所有配置文件都可以在https://github.com/stescacom/elastic_beanstalk_laravel_mongo_config 找到希望这对其他人有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM