【问题标题】:Deploy Javascript Cron Jobs and Queues on Amazon Elastic Beanstalkd在 Amazon Elastic Beanstalkd 上部署 Javascript Cron 作业和队列
【发布时间】:2019-07-31 18:23:59
【问题描述】:

我有一个 Amazon Elastic Beanstalk 应用程序,目前正在运行我的 NODE.JS 应用程序。

我已经使用 kue.js 创建了一些队列和使用 node-schedule 的 Cron。

由于我有很多命令来运行队列和 cron,我发现无法将它放在我当前的 nodejs 应用程序上。

我愿意打开一个新的应用程序,唯一的问题是我只能运行一个命令。

我真的不想打开单独的 ec2(未连接到我的 Elastic Beanstalk 服务)来运行所有这些。

我能做些什么来解决它?

非常感谢!

【问题讨论】:

  • 有些东西我不太清楚,您愿意打开一个新应用程序是什么意思?你能描述一下你什么时候需要运行这些命令吗?部署服务时它只是一次性的吗?你如何运行这些命令?
  • 应用程序是指一个新的 beanstalkd node.js 应用程序,是的,这是我部署服务的一次,但它们应该由 pm2 之类的东西维护,以防它们崩溃。
  • 是带有 kue.js 的队列和带有 node-schedule 的 Cron 只是您使用 node 或 pm2 运行的 javascript 脚本?
  • 没错,它是一个循环中的javascript,就像express一样。

标签: javascript node.js amazon-web-services devops amazon-elastic-beanstalk


【解决方案1】:

当您想使用 EB(Elastic Beanstalk)时,您可以为应用程序编写一个 docker 文件,EB 已经检测到该文件并询问您这是否是一个基于 docker 的项目,它会处理其余的,您只需要在入口点命令 CMDnpm start 之前编写所有需要运行的脚本,如下所示

Dockerfile

FROM node:10.13-alpine
# Sets the working directory,and creates the directory as well.
WORKDIR /app
# Install dependencies.
ADD package.json .
RUN npm install
# Copy your source code.
COPY . /app

#Run all your scripts here or simply put them to a scripts.js and run it
RUN node scripts.js

# start app
CMD ["npm", "start"]

【讨论】:

  • 但是当我的一个 nodejs 应用程序崩溃时会发生什么?
  • 不是 pm2 应该负责处理吗?
猜你喜欢
  • 2014-10-14
  • 2013-06-14
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2020-03-04
  • 2016-09-14
  • 2016-11-25
相关资源
最近更新 更多