Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

506
Visualizações
La tarea de programación de Laravel en AWS no funciona

Estoy implementando mi aplicación Laravel en el entorno de ElasticBeanstalk. Estoy tratando de ejecutar un comando en la Tarea de programación en el servidor. Pero no está funcionando. Esto es lo que he hecho.

Programo mi comando en el archivo Kernel.php de la siguiente manera.

 $schedule->command('counter:update')->everyMinute()->onOneServer();

Estoy usando Redis como mi controlador de caché y está funcionando.

Luego probé dos enfoques diferentes.

Primer enfoque: uso del paquete Laravel AWS Worker , https://packagist.org/packages/dusterio/laravel-aws-worker

Instalé el paquete siguiendo las instrucciones mencionadas en el documento.

Luego incluyo en la lista blanca las rutas de trabajo mencionadas en el documento en el middleware CSRF.

Luego creé un archivo cron.yml dentro de la carpeta raíz del proyecto con el siguiente contenido.

 version: 1 cron: - name: "schedule" url: "/worker/schedule" schedule: "* * * * *"

Luego implementé mi aplicación. Pero la tarea de programación no funciona. Así que probé el segundo enfoque de la siguiente manera.

Segundo enfoque: uso de Crontab

Creé un archivo .ebextensions/cronjob.config con el siguiente contenido.

 files: "/etc/cron.d/schedule_run": mode: "000644" owner: root group: root content: | * * * * * root . /opt/elasticbeanstalk/support/envvars && /usr/bin/php /var/www/html/artisan schedule:run 1>> /dev/null 2>&1 commands: remove_old_cron: command: "rm -f /etc/cron.d/*.bak"

Luego implementé mi aplicación. El segundo enfoque tampoco funciona. ¿Qué falta en mi configuración y cómo puedo hacer que funcione?

Este es mi otro archivo cronjob.config.

 files: "/etc/cron.d/mycron": mode: "000644" owner: root group: root content: | * * * * * root /usr/local/bin/myscript.sh "/usr/local/bin/myscript.sh": mode: "000755" owner: root group: root content: | #!/bin/bash date > /tmp/date * * * * * root . /opt/elasticbeanstalk/support/envvars && /usr/bin/php /var/www/html/artisan schedule:run 1>> /dev/null 2>&1 exit 0 commands: remove_old_cron: command: "rm -f /etc/cron.d/mycron.bak"
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

El cron.yml que probó es solo para entornos de trabajo .

/opt/elasticbeanstalk/support/envvars es solo para Amazon Linux 1 . Dado que está utilizando 64bit Amazon Linux 2 v3.0.3 running PHP 7.3 (según recuerdo), el cron generará un error.

Por lo tanto, debe centrarse en el segundo enfoque, que está en línea con el blog de AWS sobre cómo usar cron en AL2:

  • ¿Cómo creo trabajos cron en instancias de Amazon EC2 en entornos de Elastic Beanstalk?

Por lo tanto, recomendaría ejecutar el trabajo cron a través de un script (por ejemplo, /usr/local/bin/myscript.sh ) como se muestra en el blog.

Contenido modificado para /usr/local/bin/myscript.sh .

Puede probar primero solo con date > /tmp/date solo para verificar si el trabajo cron funciona. Para esto, debe implementar su aplicación y verificar si /tmp/date contiene la hora generada por este script.

 "/usr/local/bin/myscript.sh": mode: "000755" owner: root group: root content: | #!/bin/bash date > /tmp/date # the line below is commented out. #/usr/bin/php /var/www/html/artisan schedule:run 1>> /dev/null 2>&1 exit 0

Acceder a variables de entorno en Amazon Linux 2

Las variables env se almacenan en /opt/elasticbeanstalk/deployment/env

Por lo tanto, para cargarlos en su script, puede usar lo siguiente:

 env $(cat /opt/elasticbeanstalk/deployment/env | xargs) sh -c '/usr/bin/php /var/www/html/artisan schedule:run 1>> /dev/null 2>&1'

o en dos lineas

 export $(cat /opt/elasticbeanstalk/deployment/env | xargs) /usr/bin/php /var/www/html/artisan schedule:run 1>> /dev/null 2>&1
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda