簡體   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