接收服务
此服务被配置为对一组 SQS 队列进行投票, 并在收到队列中的消息后通知订阅服务 .
如果用户的响应成功, 消息将从队列中删除 。 如果不在可见度超时后,消息会再次被可见,并可能根据SQS再驱动策略进行再处理.
环境变量
| 名称 | 说明 | 所需经费 | 默认 | 无效 | 说明 |
|---|---|---|---|---|---|
| 诺德-ENV | 节点环境 | 没有 | 开发, fsh-{env} | ||
| 区域 | 要使用的 AWS 区域 | 对 | 见 AWS 地区 | ||
| AWS SQS ENDPOINT (英语) | 自定义 SQS 端点 | 没有 | 具体区域 | 用于覆盖本地开发的 SQS 服务端点 | |
| (原始内容存档于2013-10-12). RECEIVER PREFIX | 读取接收实例特有的环境变量的前缀 | 对 | 通过环境获取更多设置所使用的前缀(见下文) | ||
| <RECEIVER PREFIX> URL> (英语) | SQS 队列 URL | 对 | |||
| {\FN黑体\FS22\BORD1\SHAD0\3AHBE\4AH00\FSCX67\FSCY66\2CHFFFFFF\3CH808080}你应该知道 | 长选票时屏蔽消息的时间 | 没有 | 20000 (20秒钟) | ||
| <RECEIVER PREFIX> VISILITY TIMEOUT MS> (英语) | 信息被其他进程所忽略的时间长度 | 对 | |||
| {\FN华文楷体\FS16\1CHE0E0E0}请检查DATE=中的日期值 (帮助) | 等待后续读取请求的最大时间 | 没有 | 300 000 (5分钟) | 将每个请求改为不返回信件,在读取前计算出一个指数延迟。 这限制了这种拖延. | |
| {\FN黑体\FS22\BORD1\SHAD0\3AHBE\4AH00\FSCX67\FSCY66\2CHFFFFFF\3CH808080}你应该知道 {\FN黑体\FS22\BORD1\SHAD0\3AHBE\4AH00\FSCX67\FSCY66\2CHFFFFFF\3CH808080} | 在规定延迟前收到无信息请求的数目 | 没有 | 10个 | 接收信件请求时, 即使有信件等待, 也不会返回信件 。 在拖延之前先允许这些请求. | |
| {\FN黑体\FS22\BORD1\SHAD0\3AHBE\4AH00\FSCX67\FSCY66\2CHFFFFFF\3CH808080}我从头开始 | 订阅者的位置 . | 对 | |||
| (原始内容存档于2018-09-25) (英语). RECEIVER PREFI SUBSCRIBER TIMEOUT MS | 读取接收实例特有的环境变量的前缀 | 没有 | 180 000(3米) | ||
| 吉布提 | 启用调试输出 | 没有 | sqs: *, sqs: receivers, sqs: read-queue, sqs: process-message, sqs:delete-message, sqs: sqs: queue-stats (中文(简体) ) | 启用给定类别的调试输出, 接受通配符 | |
| 空难 | 空气刹主机的 URL | 没有 | |||
| (原始内容存档于2013-10-12) (英语). AIRBRAKE PROJECT KEY | 空中刹车记录的项目密钥 | 没有 |
通过 pm2 控制
pm2 [start|restart|stop|delete] ecosystem.config.js
这个 ecosystem.config.js 文件包含要运行的接收服务集。 示例条目如下:
- script: ./index.js
name: 'Sales Queue'
env:
RECEIVER_PREFIX: SALES_QUEUE
output: ./logs/sales-queue.out
error: ./logs/sales-queue.err
autorestart: false
调试
服务使用调试包参见 DEBUG 环境变量引导
失败
当遇到一般错误读取 SQS 队列时, 如 ECONNREFUSED , 服务会提前失败
如果所有读取 SQS 队列的 http 出错, 服务会继续日志错误 . 见: https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/CommonErrors.html 互联网档案馆的存檔,存档日期2013-12-20
如果用户进程队列中遇到所有错误, 服务会继续日志错误
只有在订阅者返回 http 成功状态时, 信件才会从 SQS 队列中删除
发展环境可建立如下:
AWS_REGION=eu-west-2
AWS_ACCESS_KEY_ID=local
AWS_SECRET_ACCESS_KEY=local
AWS_SQS_ENDPOINT=http://0.0.0.0:9324
DEBUG=sqs:*
TRANSACTION_QUEUE_URL=http://0.0.0.0:9324/queue/TransactionsQueue.fifo
TRANSACTION_QUEUE_MAX_POLLING_INTERVAL_MS=30000
TRANSACTION_QUEUE_VISIBILITY_TIMEOUT_MS=300000
TRANSACTION_QUEUE_SUBSCRIBER=http://0.0.0.0:4000/process-queue/transactions
TRANSACTION_DLQ_URL=http://0.0.0.0:9324/queue/TransactionsDlq.fifo
TRANSACTION_DLQ_MAX_POLLING_INTERVAL_MS=180000
TRANSACTION_DLQ_VISIBILITY_TIMEOUT_MS=300000
TRANSACTION_DLQ_SUBSCRIBER=http://0.0.0.0:4000/process-dlq/transactions