AWS 上的 Laravel 调度任务无法正常工作

2024-04-17

我正在将 Laravel 应用程序部署到 ElasticBeanstalk 环境。我正在尝试在服务器上的计划任务中运行命令。但它不起作用。这就是我所做的。

我在 Kernel.php 文件中安排命令如下。

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

我正在使用 Redis 作为我的缓存驱动程序,它正在工作。

然后我尝试了两种不同的方法。

第一种方法:使用 Laravel AWS Worker 包, https://packagist.org/packages/dusterio/laravel-aws-worker https://packagist.org/packages/dusterio/laravel-aws-worker

我按照文档中提到的说明安装了该软件包。

然后我将 CSRF 中间件中文档中提到的工作路由列入白名单。

然后我在项目的根文件夹中创建了一个 cron.yml 文件,其中包含以下内容。

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

然后我部署了我的应用程序。但调度任务不起作用。所以我尝试了如下第二种方法。

第二种方法:使用 crontab

我创建了一个包含以下内容的 .ebextensions/cronjob.config 文件。

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"

然后我部署了我的应用程序。 第二种方法也行不通。我的配置中缺少什么以及如何让它工作?

这是我的另一个 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"

The cron.yml你尝试的只是为了工人环境.

The /opt/elasticbeanstalk/support/envvars只为亚马逊 Linux 1。既然你正在使用64bit Amazon Linux 2 v3.0.3 running PHP 7.3(我记得),cron 会出错。

因此,您应该关注第二种方法,它符合AWS blog关于如何在 AL2 上使用 cron:

  • 如何在 Elastic Beanstalk 环境中的 Amazon EC2 实例上创建 cron 作业? https://aws.amazon.com/premiumsupport/knowledge-center/cron-job-elastic-beanstalk/

因此,我建议执行cron通过脚本进行工作(例如,/usr/local/bin/myscript.sh)如博客中所示。

修改内容为/usr/local/bin/myscript.sh.

您只能先尝试date > /tmp/date只是为了检查 cron 作业是否有效。为此,您必须部署您的应用程序,并检查是否/tmp/date包含此脚本生成的时间。

    "/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

访问 Amazon Linux 2 中的环境变量

环境变量存储在/opt/elasticbeanstalk/deployment/env

因此,要将它们加载到脚本中,您可以使用以下命令:

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

或两行

export $(cat /opt/elasticbeanstalk/deployment/env | xargs) 
/usr/bin/php /var/www/html/artisan schedule:run 1>> /dev/null 2>&1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AWS 上的 Laravel 调度任务无法正常工作 的相关文章

  • 在浏览器刷新中刷新检票面板

    我正在开发一个付费角色系统 一旦用户刷新浏览器 我就需要刷新该页面中可用的统计信息 统计信息应该从数据库中获取并显示 但现在它不能正常工作 因为在页面刷新中 java代码不会被调用 而是使用以前的数据加载缓存的页面 我尝试添加以下代码来修复
  • 洪水填充优化:尝试使用队列

    我正在尝试创建一种填充方法 该方法采用用户指定的初始坐标 检查字符 然后根据需要更改它 这样做之后 它会检查相邻的方块并重复该过程 经过一番研究 我遇到了洪水填充算法并尝试了该算法 它可以工作 但无法满足我对 250 x 250 个字符的数
  • 如何执行“sudo nvm”?

    在我的 Mac 上 我想将一些需要 su 权限的包迁移到另一个节点版本 我使用 homebrew 安装 nvm 现在我需要执行 sudo nvm 或 reinstall packages将失败 me MacBook sudo nvm sud
  • iOS 电池监控 Swift

    我已将监控设置为启用 但模拟器和设备中的电池电量仍然为 1 UIDevice currentDevice batteryMonitoringEnabled true var level UIDevice currentDevice batt
  • Angular Libraries Monorepo:是否可以为每个库使用不同的版本?

    只是一个简单的问题 我似乎找不到答案 我正在尝试构建一个应该能够使用 angular cli v8 的 monorepo 但仍然能够编译和构建为 v2 v3 v4 等制作的库 主要是组件和服务 版本之间发生了很多变化 所以让我们举个例子 V
  • 在 PHP 中模拟 jQuery.ajax 请求

    我必须在 PHP 中模拟 AJAX 请求 就像在 jQuery 中一样 我当前的代码在这里 原始 AJAX 调用 不得修改 ajax type POST url someFile php data data success function
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens
  • 从输入类型编号获取无效值

    我正在使用输入类型数字 当它无效时 我如何从中获取值 例如 使用类型编号并仅打印 e 这本身是无效的 我正在使用 React 但我认为这个问题非常普遍 onChange event console log event target valu
  • 从类模板参数为 asm 生成唯一的字符串文字

    我有一个非常特殊的情况 我需要为类模板中声明的变量生成唯一的汇编程序名称 我需要该名称对于类模板的每个实例都是唯一的 并且我需要将其传递给asm关键字 see here https gcc gnu org onlinedocs gcc 12
  • Java EE 目录结构

    我对以下教程有疑问 http www mkyong com jsf2 jsf 2 internationalization example http www mkyong com jsf2 jsf 2 internationalizatio
  • 无法使用 HTML 设置未定义 jQuery UI 自动完成的属性“_renderItem”

    我使用以下代码将 jQuery UI 自动完成项呈现为 HTML 这些项目在自动完成控件中正确呈现 但我不断收到此 JavaScript 错误并且无法移动过去 Firefox 无法转换 JavaScript 参数 Chrome 无法设置未定
  • 如何确定母版页中正在显示哪个子页?

    我正在母版页上编写代码 我需要知道正在显示哪个子 内容 页面 我怎样才能以编程方式做到这一点 我用这个 string pageName this ContentPlaceHolder1 Page GetType FullName 它以 AS
  • 如何绘制大时间序列(数千次给药次数/药物剂量)?

    我正在尝试绘制医院中如何开出单一药物的图解 在这个虚拟数据库中 我在 2017 年 1 月 1 日之后遇到了 1000 名患者 绘图的目的是了解该药物的给药模式 在接近入院 出院或患者住院期间是否更频繁 高剂量给药 Get random d
  • “pdo_mysql”已禁用,我无法启用它。我在 iMac 7.1 OSX 10.6.8 上安装了 MAMP v. 3.0.4

    pdo mysql 已禁用 我无法启用它 我在 iMac 7 1 OSX 10 6 8 上安装了 MAMP v 3 0 4 在我的 phpinfo 页面上 我可以看到唯一启用的 PDO 是 sqlite 如果我查看 php 5 5 10 扩
  • 如何在 Erlang 中将数字转换为单词?

    我发现了一个关于将数字转换为 单词 的有趣问题 代码高尔夫 数字到单词 https stackoverflow com questions 309884 code golf number to words 我真的很想看看你如何在 Erlan
  • WPF/数据集:如何通过 XAML 将相关表中的数据绑定到数据网格列中?

    我正在使用 WPF DataSet 连接到 SQL Server Express XAML 和 C Visual Studio 2013 Express 我从名为 BankNoteBook 的现有 SQL Server Express 数据
  • 在java中使用多个bufferedImage

    我正在 java 小程序中制作游戏 并且正在尝试优化我的代码以减少闪烁 我已经实现了双缓冲 因此我尝试使用另一个 BufferedImage 来存储不改变的游戏背景元素的图片 这是我的代码的相关部分 public class QuizApp
  • 如何使用 std::array 模拟 C 数组初始化“int arr[] = { e1, e2, e3, ... }”行为?

    注意 这个问题是关于不必指定元素数量并且仍然允许直接初始化嵌套类型 这个问题 https stackoverflow com questions 6111565 now that we have stdarray what uses are
  • 设置/覆盖 UICollectionView 中单元格之间的填充

    我有一个 UICollectionView 但在获取单元格之间的填充时遇到了问题 理论上 我应该能够将屏幕除以 4 并且我可以获得包含 4 个图像的单元格大小 完美地占据屏幕宽度 但是 它选择不这样做 相反 它会创建 3 个具有巨大填充的图
  • Spring表单ModelAttribute字段验证避免400 Bad Request错误

    我有一个ArticleFormModel包含正常发送的数据html form由 Spring 使用注入 ModelAttribute注释 即 RequestMapping value edit method RequestMethod PO

随机推荐

  • 使用 Formik 反应验证最大范围

    我正在尝试使用 React 和 Formik 进行验证 我想要实现最大数字仅为 2 最大范围应仅为 12 expiryMonth yup string required Select month max 2 Invalid month fo
  • ggplot2 facet_wrap 在每个方面绘制点、段、文本

    这与已发布的问题相同here https stackoverflow com questions 11889625 annotating text on individual facet in ggplot2 and here https
  • 调用always_inline‘_mm_mullo_epi32’时内联失败:目标特定选项不匹配

    我正在尝试使用 cmake 编译 C 程序 该程序使用 SIMD 内在函数 当我尝试编译它时 出现两个错误 usr lib gcc x86 64 linux gnu 5 include smmintrin h 326 1 错误 调用alwa
  • userprincipal.findbyidentity 发生操作错误

    好吧 我有责任将具有多个应用程序的网站迁移到另一台服务器 迁移进展顺利 所有应用程序都正常运行 然而 该新服务器的性能低于标准 完全是另一回事 我们决定再次迁移它 这次一切都运行良好 除了一个应用程序 它在第一台和第二台 IIS 服务器上运
  • Protractor 中的全局 beforeEach 和 afterEach

    在每个规范中我都有beforeEach and afterEach声明 是否可以以某种方式全局添加它以避免规范之间的代码重复 目的beforeEach and afterEach 函数是添加一个重复代码块 每次开始或完成执行每个规范时都需要
  • HTML5 Canvas:绘制完成时获取事件

    我正在将图像绘制到画布元素 然后我就有了依赖于这个过程来完成的代码 我的代码如下所示 var myContext myCanvasElement getContext 2d myImg new Image myImg onload func
  • 什么是位掩码?

    我对 C 编程相当陌生 并且遇到了位掩码 位掩码的一般概念和作用是什么 非常感谢例子 掩码定义要保留哪些位以及要清除哪些位 屏蔽是将屏蔽应用于值的行为 这是通过执行以下操作来完成的 按位与运算以提取值中的位子集 按位或运算以设置值中的位子集
  • 大数据请求体为空

    我在 post 方法的正文中发送大量文本 我使用 Postman 来测试这一点 但是它工作正常 我可以像这样读取请求正文 String text request body asText 但是当我尝试在正文中发送大量数据时 我得到的文本为空
  • Websphere 7集群部署

    我们有一个 J2EE 应用程序作为 EAR 文件 部署在 WAS 7 中 为了使应用程序可用性尽可能高 需要部署在 3 个集群中 我们有一个 Quartz Scheduler 类 其工作是每天凌晨 2 00 将数据从一个数据库上传到另一个数
  • MobX-State-Tree 流程中的类型化 Yield 表达式

    在 MobX state tree MST 中执行异步操作的推荐方法是使用flow https mobx state tree js org concepts async actions 它接受一个生成器函数作为第一个参数 其中每个承诺都应
  • 在 Docker 容器接口上应用 NetEM WAN 延迟

    我想对 docker 容器的出口流量应用 NetEm 延迟 通常 我运行 sbin tc qdisc add dev INTERFACE root netem delay DELAY ms 问题是我不知道容器连接到的接口 例如 我正在运行以
  • 本地化 JavaAnpr 以获取本地车牌

    我正在与JavaAnpr http javaanpr sourceforge net 自动识别车牌 虽然它适用于欧洲车牌 但不适用于我的国家 例如 如何编辑资源文件和语法 XML 以支持其他国家 地区 michel layyous 这是作者
  • 从二元高斯分布生成均值

    我正在阅读统计学习要素ESLII http www stat stanford edu tibs ElemStatLearn 在第二章中 他们用高斯混合数据集来说明一些学习算法 为了生成该数据集 他们首先从二元高斯分布 N 1 0 I 生成
  • 如何在 Windows PowerShell 中使用 .bat 文件更改当前目录?

    我正在学习 Windows PowerShell 并且正在努力完成非常基本的任务 如何创建 bat 文件来更改当前目录 简单的 bat 文件cd mydir里面用得很好cmd exe 但它在 PowerShell 中不起作用 PS C Us
  • 将条目插入到 crontab 中,除非它已经存在(如果可能的话作为单行)[重复]

    这个问题在这里已经有答案了 将条目插入 etc crontab 的首选方法是什么 除非它存在 最好使用单行 这是我希望放入 etc crontab 中的示例条目 除非它已经存在于其中 1 some user python mount sha
  • 在 .NET core 2.0 中创建迁移步骤时,将“IDesignTimeDbContextFactory”的实现添加到项目错误中

    我有一个 NET core 1 0 web 应用程序运行良好 我必须升级到 NET Core 2 0 我还必须为我的 SQLite 数据库添加迁移步骤 如果我启动这个命令 添加迁移 MyMigrationStepName 我收到此错误 无法
  • JMS 会话寿命长。保持 JMS 连接/JMS 会话总是打开是一种不好的做法吗?

    保持 JMS 连接 会话 消费者始终打开是一种不好的做法吗 代码草案示例 app startup code ConnectionFactory cf ConnectionFactory jndiContext lookup CF JNDI
  • 将 GCC 内联汇编与采用立即值的指令结合使用

    问题 我正在为 ARM Cortex M3 处理器开发定制操作系统 为了与我的内核交互 用户线程必须生成 SuperVisor Call SVC 指令 以前称为 SWI 用于软件中断 该指令在ARM ARM中的定义是 这意味着该指令需要即时
  • itextsharp 不关闭文件

    我有一些用于 itextsharp 合并 2 个 pdf 文件的代码 在网上某处找到的 合并工作正常 但似乎源文件在全部完成后仍在使用 我想做的是删除我已经合并的第一个文件 通过文件上传上传 并仅保留合并的文件 肯定是执行合并的代码导致文件
  • AWS 上的 Laravel 调度任务无法正常工作

    我正在将 Laravel 应用程序部署到 ElasticBeanstalk 环境 我正在尝试在服务器上的计划任务中运行命令 但它不起作用 这就是我所做的 我在 Kernel php 文件中安排命令如下 schedule gt command