openwhisk-composer 在进行并行组合时无法连接到 redis 服务器
openwhisk-composer can't connect to redis server when doing parallel compositions
这里有人试过 openwhisk-composer composer.parallel()?
我的 openwhisk 操作似乎无法连接到 redis-server ive 设置,
当我使用 composer.parallel() 调用操作时它抛出错误
"logs": [
"2020-12-11T06:49:29.0983145Z stdout: Entering composition[2]",
"2020-12-11T06:49:29.09834Z stdout: barrierId: 374ac5cc-44b1-49e5-8605-5398904d62cc, spawning: 2",
"2020-12-11T06:49:29.0989087Z stdout: { AbortError: LPUSH can't be processed. The connection is already closed.",
"2020-12-11T06:49:29.0989191Z stdout: at handle_offline_command (/node_modules/redis/index.js:851:15)",
"2020-12-11T06:49:29.0989227Z stdout: at RedisClient.internal_send_command (/node_modules/redis/index.js:885:9)",
"2020-12-11T06:49:29.0989261Z stdout: at RedisClient.lpush (/node_modules/redis/lib/commands.js:58:25)",
"2020-12-11T06:49:29.0989294Z stdout: at Promise (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:77:12)",
"2020-12-11T06:49:29.0989328Z stdout: at new Promise (<anonymous>)",
"2020-12-11T06:49:29.098936Z stdout: at RedisClient.t.(anonymous function) [as lpushAsync] (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:76:86)",
"2020-12-11T06:49:29.098939Z stdout: at m (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:85:39)",
"2020-12-11T06:49:29.0989422Z stdout: at Object.parallel (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:130:105)",
"2020-12-11T06:49:29.0989483Z stdout: at $ (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:149:78)",
"2020-12-11T06:49:29.0989534Z stdout: at Promise.resolve.then (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:154:59)",
"2020-12-11T06:49:29.0989568Z stdout: command: 'LPUSH',",
"2020-12-11T06:49:29.0989598Z stdout: code: 'NR_CLOSED',",
"2020-12-11T06:49:29.0989631Z stdout: args: [ 'composer/fork/374ac5cc-44b1-49e5-8605-5398904d62cc', 42 ] }"
],
const composer = require('openwhisk-composer');
// complexwf.js
module.exports = composer.retain(
composer.action('step-a', { action: function (params) {
console.log('log-step-a', params);
return { value: 'from-step-a' }
} }),
composer.action('step-b', { action: function (params) {
console.log('log-step-b', params);
return { value: 'from-step-b' }
} }),
composer.parallel(
composer.action('step-c', { action: function (params) {
console.log('log-step-c', params);
return { value: 'from-step-c' }
} }),
composer.action('step-d', { action: function (params) {
console.log('log-step-d', params);
return { value: 'from-step-d' }
} }),
)
);
关于我的设置的一些信息,我的 redis 服务器在 docker 上运行
已尝试通过 vscode 中的 redis 资源管理器连接到我的 redis 服务器并且正在运行,
能够让它工作,我将输入中的 redis uri 更改为容器 ip 而不是 public ip,所以输入是这样的
{
"name": "complexwf",
"params": {
"$composer": {
"openwhisk": {
"ignore_certs": true
},
"redis": {
"uri": "redis://172.17.0.2:6379"
}
},
"value": "from-input"
}
}
这里有人试过 openwhisk-composer composer.parallel()?
我的 openwhisk 操作似乎无法连接到 redis-server ive 设置,
当我使用 composer.parallel() 调用操作时它抛出错误
"logs": [
"2020-12-11T06:49:29.0983145Z stdout: Entering composition[2]",
"2020-12-11T06:49:29.09834Z stdout: barrierId: 374ac5cc-44b1-49e5-8605-5398904d62cc, spawning: 2",
"2020-12-11T06:49:29.0989087Z stdout: { AbortError: LPUSH can't be processed. The connection is already closed.",
"2020-12-11T06:49:29.0989191Z stdout: at handle_offline_command (/node_modules/redis/index.js:851:15)",
"2020-12-11T06:49:29.0989227Z stdout: at RedisClient.internal_send_command (/node_modules/redis/index.js:885:9)",
"2020-12-11T06:49:29.0989261Z stdout: at RedisClient.lpush (/node_modules/redis/lib/commands.js:58:25)",
"2020-12-11T06:49:29.0989294Z stdout: at Promise (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:77:12)",
"2020-12-11T06:49:29.0989328Z stdout: at new Promise (<anonymous>)",
"2020-12-11T06:49:29.098936Z stdout: at RedisClient.t.(anonymous function) [as lpushAsync] (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:76:86)",
"2020-12-11T06:49:29.098939Z stdout: at m (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:85:39)",
"2020-12-11T06:49:29.0989422Z stdout: at Object.parallel (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:130:105)",
"2020-12-11T06:49:29.0989483Z stdout: at $ (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:149:78)",
"2020-12-11T06:49:29.0989534Z stdout: at Promise.resolve.then (eval at initializeActionHandler (/nodejsAction/runner.js:56:23), <anonymous>:154:59)",
"2020-12-11T06:49:29.0989568Z stdout: command: 'LPUSH',",
"2020-12-11T06:49:29.0989598Z stdout: code: 'NR_CLOSED',",
"2020-12-11T06:49:29.0989631Z stdout: args: [ 'composer/fork/374ac5cc-44b1-49e5-8605-5398904d62cc', 42 ] }"
],
const composer = require('openwhisk-composer');
// complexwf.js
module.exports = composer.retain(
composer.action('step-a', { action: function (params) {
console.log('log-step-a', params);
return { value: 'from-step-a' }
} }),
composer.action('step-b', { action: function (params) {
console.log('log-step-b', params);
return { value: 'from-step-b' }
} }),
composer.parallel(
composer.action('step-c', { action: function (params) {
console.log('log-step-c', params);
return { value: 'from-step-c' }
} }),
composer.action('step-d', { action: function (params) {
console.log('log-step-d', params);
return { value: 'from-step-d' }
} }),
)
);
关于我的设置的一些信息,我的 redis 服务器在 docker 上运行 已尝试通过 vscode 中的 redis 资源管理器连接到我的 redis 服务器并且正在运行,
能够让它工作,我将输入中的 redis uri 更改为容器 ip 而不是 public ip,所以输入是这样的
{
"name": "complexwf",
"params": {
"$composer": {
"openwhisk": {
"ignore_certs": true
},
"redis": {
"uri": "redis://172.17.0.2:6379"
}
},
"value": "from-input"
}
}