首页 > 解决方案 > Laravel 计划对 Elastic Beantstalk CRON 作业没有影响

问题描述

我正在尝试使用 laravel 调度程序运行 cron 作业,我在内核中编写了计划如下:

protected function schedule(Schedule $schedule)
    {

        $schedule->call(function(){
            Log::channel('channel')->info("testing cron job :)");
        })
        ->everyMinute()
        ->thenPing("https://cronhub.io/ping/b3e3f120-e041-11ea-b67f-ff1be350e0bb");
    }

当我使用命令在本地测试作业时:php artisan schedule:run它成功运行并且我在我的松弛通道中获得了日志。

我正在将 ElasticBeanstalk 用于我的基础架构,因此,我正在尝试使用设置所需的配置,.ebextensions并且我有一个文件:.ebextensions/cron-setup.confi它的内容如下:

files:
  "/etc/cron.d/cron_example":
    mode: "000644"
    owner: root
    group: root
    content: |
      * * * * * cd /var/app/current && php artisan schedule:run >> /dev/null 2>&1

commands:
  rm_old_cron:
    command: "rm -fr /etc/cron.d/cron_example.bak"
    ignoreErrors: true

当我将代码部署到服务器时,我发现 cron 作业正在成功运行,方法是查看/var/log/cron日志文件和我用于在作业执行后进行 bing 的 SaaS 调试器。但是,该执行根本没有效果。换句话说,我没有收到松弛消息,并确保它与 env vars 或我尝试运行命令的任何其他原因无关:php artisan schedule:run来自服务器并且我在 slack 中收到了消息,我还认为与 slack 通信可能存在问题(尽管如上所述手动工作正常)因此,我尝试做另一项工作,在数据库中进行一些更改我得到了完全相同的东西,它在手动应用时在本地和服务器中工作正常,并且通过读取 cron 文件也可以正常工作,但对数据库没有任何影响!任何帮助,将不胜感激。

标签: laravelamazon-ec2cronamazon-elastic-beanstalk

解决方案


推荐阅读